06.Maven 之 Nexus 使用
阿新 • • 發佈:2019-01-11
1. Nexus 安裝
1.1 前提條件
- jre 環境
1.2 上傳 nexus-2.11.2-03-bundle.tar.gz 檔案後解壓
tar -zxvf nexus-2.11.2-03-bundle.tar.gz
1.3 編輯 bin/nexus 指令碼,配置 RUN_AS_USER 引數
RUN_AS_USER=root
1.4 啟動 nexus
./nexus start
1.5 訪問
-
使用者名稱/密碼:admin/admin123
2. Nexus 簡介
-
3rd party: 無法從公共倉庫獲得的第三方釋出版本的構件倉庫
-
Apache Snapshots: 用了代理ApacheMaven倉庫快照版本的構件倉庫
-
Central: 用來代理maven中央倉庫中釋出版本構件的倉庫
-
Central M1 shadow: 用於提供中央倉庫中M1格式的釋出版本的構件映象倉庫
-
Codehaus Snapshots: 用來代理CodehausMaven 倉庫的快照版本構件的倉庫
-
Releases: 用來部署管理內部的釋出版本構件的宿主型別倉庫
-
Snapshots: 用來部署管理內部的快照版本構件的宿主型別倉庫
3. 上傳 jar 包到私服
3.1 專案配置
<!-- 釋出到私服 -->
<distributionManagement>
<repository>
<id>user-release</id>
<name>User Project Release</name>
<url>http://192.168.188.100:8081/nexus/content/repositories/releases/</ url>
</repository>
<snapshotRepository>
<id>user-snapshots</id>
<name>User Project SNAPSHOTS</name>
<url>http://192.168.188.100:8081/nexus/content/repositories/snapshots/</url>
</snapshotRepository>
</distributionManagement>
3.2 全域性環境配置
- 必須要配置 mvn 釋出的許可權,否則會報 401 錯誤,在 settings.xml 中配置許可權,其中 id 要與 pom 檔案中的 id 一致
<servers>
<!-- 私服地址的使用者名稱/密碼 -->
<server>
<id>user-release</id>
<username>admin</username>
<password>admin123</password>
</server>
<server>
<id>user-snapshots</id>
<username>admin</username>
<password>admin123</password>
</server>
</servers>
3.3 釋出
mvn deploy
4. 從私服下載 jar 包
4.1 單個專案
- 在 maven 專案中的 pom.xml 檔案中指定私服地址
<!-- 使用私服倉庫 -->
<repositories>
<repository>
<id>nexus</id>
<name>nexus</name>
<url>http://192.168.188.100:8081/nexus/content/groups/public/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
<!-- 使用私服外掛 -->
<pluginRepositories>
<pluginRepository>
<id>nexus</id>
<name>nexus</name>
<url>http://192.168.188.100:8081/nexus/content/groups/public/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>
4.2 全域性環境
- 在 maven_home/conf/settings.xml 檔案中加入如下配置
<profiles>
<!-- maven 私服地址 -->
<profile>
<id>nexusProfile</id>
<repositories>
<repository>
<id>nexus</id>
<name>nexus</name>
<url>http://192.168.188.100:8081/nexus/content/groups/public/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
</profile>
</profiles>
<!-- 啟用 -->
<activeProfiles>
<activeProfile>nexusProfile</activeProfile>
</activeProfiles>