Nexus3 Docker 私有仓库
安装并部署 Nexus3
$ docker search nexus3
$ docker pull sonatype/nexus3
$ mkdir /home/tester/data/docker/nexus3/sonatype-work
$ sudo chown -R 200 /home/tester/data/docker/nexus3/sonatype-work
$ docker run -d --name=nexus3 \
--restart=always \
-p 8081:8081 \
-p 8082:8082 \
-p 8083:8083 \
--privileged=true \
-e INSTALL4J_ADD_VM_PARAMS="-Xms512M -Xmx512M -XX:MaxDirectMemorySize=512M" \
-v /home/tester/data/docker/nexus3/sonatype-work:/opt/sonatype/sonatype-work \sonatype/nexus3
默认访问端口 8081
http://192.168.56.102:8081/
tester@tester:~/data/docker/nexus3/sonatype-work/nexus3$ cat admin.password
9c250389-1f8e-4e80-b52d-e289ad725405tester@tester:~/data/docker/nexus3/sonatype-work/nexus3$
复制此字符串填入密码框
9c250389-1f8e-4e80-b52d-e289ad725405
私服访问
允许匿名用户访问,否则需要在本地settings.xml配置文件访问用户名及密码
<servers><server><!-- mirror 中配置的ID需与此id相等 --><id>maven-public</id> <username>admin</username><password>123456</password></server><!-- deploy 上传到私服 --><server><id>maven-releases</id><username>admin</username><password>123456</password></server><server><id>maven-snapshots</id><username>admin</username><password>123456</password></server>
</servers>
私服仓库
Type 的三种类型:
- proxy: 代理中央Maven仓库,先通过Proxy下载到Nexus仓库,然后再从Nexus仓库下载到本地。
其中的优势只要中央仓库中有相关的依赖包,后期都可以从Nexus私服上下载。
创建代理阿里仓库
- hosted: 宿主机,用于将第三方的Jar或者我们自己的jar放到私服上。Hosted的创建和Proxy类似,类型需选择maven2(hosted)。
- 三种方式,Releases、SNAPSHOT、Mixed
- Releases: 一般是已经发布的Jar包
- Snapshot: 未发布的版本
- Mixed:混合的
- 三种方式,Releases、SNAPSHOT、Mixed
注意:hosted
Deployment Pollcy
,策略Allow redeploy
,允许重复发布覆盖同版本的jar包。
- group: maven用户可以从代理仓库和宿主仓库中下载构建至本地仓库,为了方便从代理仓库和宿主仓库下载构建,maven提供了仓库组。
仓库组内的多个仓库是有顺序的,当用户从仓库组中下载构建时,按顺序在仓库组中查找,查到了就返回给本地仓库,所以一般将速度快的放前面。
仓库组起到一个请求转发的作用,将下载请求转发给其它仓库处理。
nexus默认有仓库组maven-public
项目配置
项目pom.xml增加仓库地址
<distributionManagement><repository><!-- id 需与server id 一致,否则无法deploy到此--><id>maven-releases</id><url>http://192.168.56.102:8081/repository/maven-releases/</url></repository><snapshotRepository><!-- id 需与server id 一致,否则无法deploy到此--><id>maven-snapshots</id><url>http://192.168.56.102:8081/repository/maven-snapshots/</url></snapshotRepository>
</distributionManagement>
<repositories><repository><id>maven-public</id><url>http://192.168.56.102:8081/repository/maven-public/</url><releases><enabled>true</enabled></releases><snapshots><enabled>false</enabled></snapshots></repository>
</repositories><!--防止pom中的jar包从私服下载之后,执行mvn 插件仍然从中央仓库中下载-->
<pluginRepositories><pluginRepository><id>maven-public</id><url>http://localhost:8081/repository/maven-public/</url></pluginRepository>
</pluginRepositories>
settings.xml
<mirror><id>maven-public</id><name>maven-public</name><url>http://192.168.56.102:8081/repository/maven-public/</url><mirrorOf>*</mirrorOf>
</mirror>