環(huán)境
在 Centos7 的虛擬機上進行安裝,虛擬機 IP 為 192.168.247.129
安裝
拉取鏡像
docker pull sonatype/nexus3
查看鏡像
docker images
運行容器
docker run -d --name nexus3 -p 8081:8081 -v /nexus-data:/nexus-data sonatype/nexus3
訪問 Nexus3 首頁 http://192.168.247.129:8081,使用 admin / admin123 進行登錄
Nexus 的倉庫分為這么幾類:
- hosted 宿主倉庫:主要用于部署無法從公共倉庫獲取的構(gòu)件(如 oracle 的 JDBC 驅(qū)動)以及自己或第三方的項目構(gòu)件;
- proxy 代理倉庫:代理公共的遠程倉庫;
- virtual 虛擬倉庫:用于適配 Maven 1;
- group 倉庫組:Nexus 通過倉庫組的概念統(tǒng)一管理多個倉庫,這樣我們在項目中直接請求倉庫組即可請求到倉庫組管理的多個倉庫。
配置 Maven 使用 Nexus 私服
對 Maven 配置文件 settings.xml 進行配置
配置私服鏡像
<mirrors>
<mirror>
<id>central</id>
<mirrorOf>*</mirrorOf> <!-- * 表示讓所有倉庫使用該鏡像-->
<name>central-mirror</name>
<url>http://192.168.247.129:8081/repository/maven-public/</url>
</mirror>
</mirrors>
mirrorOf 表示代理的鏡像," * " 表示將 Nexus 配置成所有倉庫的鏡像,central 表示將 Nexus 配置成中央倉庫的鏡像
配置阿里云倉庫代理中央倉庫,Nexus 代理其它倉庫
<mirror>
<id>nexus-aliyun</id>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
<mirrorOf>central</mirrorOf>
</mirror>
<mirror>
<id>nexus</id>
<mirrorOf>*</mirrorOf>
<url>http://192.168.247.129:8081/repository/maven-public/</url>
</mirror>
配置 Nexus 作為快照倉庫
<profiles>
<profile>
<id>nexus-resp</id>
<repositories>
<repository>
<id>nexus-releases</id>
<url>http://192.168.247.129:8081/repository/maven-releases/</url>
<releases><enabled>true</enabled></releases>
<snapshots><enabled>false</enabled></snapshots>
</repository>
<repository>
<id>nexus-snapshots</id>
<url>http://192.168.247.129:8081/repository/maven-snapshots/</url>
<releases><enabled>false</enabled></releases>
<snapshots><enabled>true</enabled></snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>nexus-plugin</id>
<url>http://192.168.247.129:8081/repository/maven-public/</url>
<releases><enabled>true</enabled></releases>
<snapshots><enabled>false</enabled></snapshots>
</pluginRepository>
</pluginRepositories>
</profile>
</profiles>
<activeProfiles>
<activeProfile>nexus-resp</activeProfile>
</activeProfiles>
配置完成,本地 Maven 項目就可以從 Nexus 私服拉取項目依賴。
將本地項目打包至私服
配置上傳帳戶密碼(配置在Maven的配置文件 settings.xml 中)
<server>
<id>nexus-releases</id>
<username>admin</username>
<password>admin123</password>
</server>
<server>
<id>nexus-snapshots</id>
<username>admin</username>
<password>admin123</password>
</server>
配置部署發(fā)布版及快照版(配置在項目的 pom 文件中)
<distributionManagement>
<repository>
<id>nexus-release</id>
<url>http://localhost:8081/repository/maven-public/</url>
</repository>
<snapshotRepository>
<id>nexus-snapshots</id>
<url>http://localhost:8081/repository/maven-snapshots/</url>
</snapshotRepository>
</distributionManagement>
配置完成,本地項目執(zhí)行 deploy 時,就會上傳至 Nexus 私服。