Docker配置Nexus Maven私服
Nexus是一个强大的仓库管理器,极大地简化了内部仓库的维护和外部仓库的访问。
通过Docker-compose安装
version: '3.1'
services:
nexus:
restart: always
image: sonatype/nexus3
hostname: '192.168.0.107'
container_name: nexus
ports:
- 8081:8081
volumes:
- /Users/xiaoming/nexus-data:/nexus-data
初始密码问题
新版本的Nexus初始密码是随机生成的,在数据卷中admin.password
中查看,之后输入即可
Maven配置Nexus节点认证信息
<server>
<id>nexus-releases</id>
<username>admin</username>
<password>123456</password>
</server>
<server>
<id>nexus-snapshots</id>
<username>admin</username>
<password>123456</password>
</server>
Maven配置自动化部署
在项目pom.xml
文件中设置如下:
<distributionManagement>
<repository>
<id>nexus-releases</id>
<name>Nexus Release Repository</name>
<url>http://ip:port/repository/maven-releases/</url>
</repository>
<snapshotRepository>
<id>nexus-snapshots</id>
<name>Nexus Snapshot Repository</name>
<url>http://ip:port/repository/maven-snapshots/</url>
</snapshotRepository>
</distributionManagement>
注意事项:
- ID名称必须要与
settings.xml
中Servers配置的ID名称保持一致。 - 项目版本号中有
SNAPSHOT
标识的,会发布到Nexus Snapshots Repository, 否则发布到Nexus Release Repository,并根据ID去匹配授权账号。
部署到仓库
mvn deploy
配置代理仓库
实现私服找不到上公服找并下载到私服。
<repositories>
<repository>
<id>nexus</id>
<name>Nexus Repository</name>
<url>http://127.0.0.1:8081/repository/maven-public/</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
<releases>
<enabled>true</enabled>
</releases>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>nexus</id>
<name>Nexus Plugin Repository</name>
<url>http://127.0.0.1:8081/repository/maven-public/</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
<releases>
<enabled>true</enabled>
</releases>
</pluginRepository>
</pluginRepositories>