## :-: nexus使用介紹
* 一、應用場景
* 二、創建一個用戶
* 三、創建一個maven倉庫
* 四、respository介紹
* 五、提交jar到maven私服
* 1\. 配置私服倉庫的賬號
* 2\. 配置發布的私服倉庫地址
* 3\. 批量提交jar包
* 4\. 提交某個jar
* 六、指定maven地址下載jar包到本地
## 一、應用場景
有些公司都不提供外網給項目組人員,因此就不能使用maven訪問遠程的倉庫地址,所以很有必要在局域網里找一臺有外網權限的機器,搭建nexus私服,然后開發人員連到這臺私服上,這樣的話就可以通過這臺搭建了nexus私服的電腦訪問maven的遠程倉庫。如果某個IP地址惡意的下載中央倉庫內容,例如全公司100臺機器使用同一個IP反復下載,這個IP(甚至是IP段)會進入黑名單,因此稍有規模的使用Maven時,應該用Nexus架設私服。總歸主要是兩點:
1. 自己maven私服更容易維護,公司開發從maven私服遷出jar到本地倉庫更快
2. 有些公司未開放外網給開發人員
## 二、創建一個用戶
點擊Security>Users 創建一個用戶,我這里測試創建的用戶/密碼是:zlt/zlt,因為后面提交本地項目jar到私服倉庫會用到
## 三、創建一個maven倉庫
設置>Repository>Repositories>Create repository>maven2(hosted)創建maven項目
>[danger] 注意Deployment policy一定要設置成allow redeploy
> version pollcy 根據倉庫類型選擇 如果是snapshots 就選擇snapshots 如果是最終發布版本 就選擇releases
## 四、respository介紹
* **proxy**:是遠程倉庫的代理。比如說在nexus中配置了一個central repository的proxy,當用戶向這個proxy請求一個artifact,這個proxy就會先在本地查找,如果找不到的話,就會從遠程倉庫下載,然后返回給用戶,相當于起到一個中轉的作用;
* **Hosted**:是宿主倉庫,用戶可以把自己的一些構件,deploy到hosted中,也可以手工上傳構件到hosted里。比如說oracle的驅動程序,ojdbc6.jar,在central repository是獲取不到的,就需要手工上傳到hosted里;
* **Group**:是倉庫組,在maven里沒有這個概念,是nexus特有的。目的是將上述多個倉庫聚合,對用戶暴露統一的地址,這樣用戶就不需要在pom中配置多個地址,只要統一配置group的地址就可以了右邊那個Repository Path可以點擊進去,看到倉庫中artifact列表。不過要注意瀏覽器緩存。
## 五、提交jar到maven私服
### 1\. 配置私服倉庫的賬號
設本地maven的settings.xml配置,在servers標簽里添加用戶密碼支持
~~~
<server>
<id>hj-releases</id>
<username>admin</username>
<password>****</password>
</server>
<server>
<id>hj-snapshots</id>
<username>admin</username>
<password>*****</password>
</server>
~~~
### 2\. 配置發布的私服倉庫地址
在項目的pom.xml中添加遠程發布的私服倉庫地址
~~~
<distributionManagement>
<repository>
<id>hj-releases</id>
<name>hj-releases</name>
<url>http://39.96.84.9:8081/repository/hj-releases/</url>
</repository>
<snapshotRepository>
<id>hj-snapshots</id>
<name>hj-snapshots</name>
<url>http://39.96.84.9:8081/repository/hj-snapshots/</url>
</snapshotRepository>
</distributionManagement>
~~~
>[danger] ### **必需保證server的id與構建項目的pom.xml中的repository的id一致**\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*
### 3\. 批量提交jar包
~~~
mvn clean deploy
~~~
>[warning] maven會根據模塊的版本號(pom文件中的version)中是否帶有-SNAPSHOT來判斷是快照版本還是正式版本。**如果是快照版本,那么在mvn deploy時會自動發布到快照版本庫中,會覆蓋老的快照版本,而在使用快照版本的模塊,在不更改版本號的情況下,直接編譯打包時,maven會自動從鏡像服務器上下載最新的快照版本。如果是正式發布版本,那么在mvn deploy時會自動發布到正式版本庫中,而使用正式版本的模塊,在不更改版本號的情況下,編譯打包時如果本地已經存在該版本的模塊則不會主動去鏡像服務器上下載**。
### 4\. 提交某個jar
命令格式如下:
~~~
mvn deploy:deploy-file -DgroupId=groupId -DartifactId=artifactId -Dversion=version -Dfile=本地jar包路徑 -DrepositoryId=releases/snapshots -Durl=倉庫地址
~~~
* 提交到releases的例子
~~~
mvn deploy:deploy-file -DgroupId=com.zlt -DartifactId=zlt-uaa -Dversion=1.1.0 -Dpackaging=jar -Dfile=zlt-uaa.jar -Durl=http://192.168.28.138:8081/repository/maven-releases/ -DrepositoryId=releases
~~~
* 提交到snapshots的例子
~~~
mvn deploy:deploy-file -DgroupId=com.zlt -DartifactId=zlt-uaa -Dversion=1.1.0-SNAPSHOT -Dpackaging=jar -Dfile=zlt-uaa.jar -Durl=http://192.168.28.138:8081/repository/maven-snapshots/ -DrepositoryId=snapshots
~~~
## 六、指定maven地址下載jar包到本地
在項目的pom.xml中添加上遠程倉庫地址
~~~
<repositories>
<repository>
<id>public</id>
<name>public</name>
<releases>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
<checksumPolicy>warn</checksumPolicy>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
<url>http://39.96.84.9:8081/repository/maven-public/</url>
</repository>
</repositories>
~~~
- 項目介紹
- 項目聲明
- 項目簡介
- 架構設計
- 項目亮點功能介紹
- 技術棧介紹
- 核心功能
- 運行環境
- 項目更新日志
- 文檔更新日志
- F&Q
- 部署教程
- 環境準備
- JDK安裝
- JDK1.8,17共存
- maven
- 分布式緩存Redis
- 單機版
- 集群
- 注冊&配置中心alibaba/nacos
- 介紹
- Nacos安裝
- Nacos配置中心
- Nacos注冊發現
- Nacos生產部署方案
- 服務監控-BootAdmin
- 基本介紹
- 如何使用
- 整合Admin-Ui
- 客戶端配置
- 鏈路追蹤
- 基本介紹
- SkyWalking-1
- Skywalking-1
- 消息隊列
- Kafka
- docker安裝kafka
- Linux集群
- Maven私服
- nexus安裝部署
- nexus使用介紹
- 全文搜索elasticsearch
- windows集群搭建
- docker安裝es
- ElasticHD
- linux集群部署
- 統一日志解決方案
- 日志解決方案設計
- 介紹與相關資料
- ELK安裝部署
- elasticsearch 7.5
- logstash-7.5
- kibana-7.5
- filebeat
- 服務監控-Prometheus
- Prometheus安裝配置
- Prometheus介紹
- grafana
- 持續集成部署CICD
- 自動化部署Jenkins
- 安裝部署win
- 打包發布遠程執行
- 安裝部署linux
- jenkins+gitlab+docker容器化工程自動化部署
- Git
- CICD說明
- 阿里云效
- CentOS_MYSQL安裝
- docker
- 安裝
- Docker安裝Nginx
- Docker部署啟動springboot
- dockerCompose
- harbor
- Docker私有鏡像倉庫
- Portainer
- Docker遠程連接設置
- 打包工程
- 必要啟動模塊
- 核心模塊
- 登錄認證
- 緩存功能
- 日志模塊
- 分布式鎖
- 消息隊列
- 異常處理
- 系統接口
- 參數驗證
- es檢索
- 數據導出
- 系統設計
- 系統總體架構
- 擴展模塊(可選)
- 限流熔斷alibaba/sentinel
- 使用Sentinel實現gateway網關及服務接口限流
- Sentinel使用Nacos存儲規則及同步
- 服務調用Feign
- Feign基本介紹
- 如何使用
- 負載均衡
- 請求超時
- 請求攔截器
- 分布式任務調度
- XXL-JOB
- 分布式事務
- TX-LCN
- Seata
- Seata原理解析
- 數據庫分庫分表
- swagger文檔
- 分布式ID生成器解決方案
- 服務網關CloudGateway
- 基本介紹
- 使用網關
- 路由配置
- 全局過濾器
- 服務認證授權架構設計
- 認證服務流程
- 授權服務流程
- 系統冪等性設計與實踐
- 分布式日志鏈路跟蹤
- 實時搜索系統設計
- 應用性能
- 壓力測試工具
- Apache JMeter介紹和安裝
- ApacheJMeter使用
- JVM
- JVM性能調優
- 常見JVM內存錯誤及解決方案
- JVM 分析工具詳解
- Spring Cloud性能調優
- Linux運維
- Linux 常用命令
- Linux開啟端口