false一、Maven仓库结构
二、安装Nexus
1、拉取镜像
docker pull sonatype/nexus3
2、创建挂载目录
# 创建目录
mkdir /usr/local/docker/nexus
# 一定要授权
chmod 777 /usr/local/docker/nexus
3、创建和启动Nexus容器
docker run -d \
--privileged \
--restart=always \
-p 8081:8081 \
--name mynexus \
-v /usr/local/docker/nexus:/nexus-data \
sonatype/nexus3
docker logs -f mynexus
4、获取Nexus初始密码
# 进入容器
docker exec -it mynexus /bin/bash
# 进入指定目录admin.password文件
cat /opt/sonatype/sonatype-work/nexus3/admin.password
查看的只是临时密码
,修改密码后admin.password文件会消失
5、登录Nexux管理后台
后台地址:http://ip:8081
默认用户名:admin
三、配置Nexus后台
1、创建Blob Stores
2、Nexus仓库
代理仓库
负责代理远程中央仓库
- maven-central
托管仓库
负责本地资源
- maven-releases
- maven-snapshots
组资源库
= 代理资源库
+ 托管资源库
3、创建代理仓库Proxy Repository
# 阿里云地址
http://maven.aliyun.com/nexus/content/groups/public
4、创建托管仓库Hosted Repository
Hosted设置:
Allow redeploy
:允许同一个版本号下重复提交代码,Nexus以时间区分Disable redeploy
:不允许同一个版本号下重复提交代码Read-only
:不允许提交任何版本
原生的
maven-releases
库是Disable redeploy
设置,maven-snapshots
是Allow redeploy
5、创建组仓库Group Repository
将hosted repositories宿主仓库的顺序放在proxy repositories代理仓库之前,因为一个group仓库组中可以包括宿主仓库和代理仓库。而整个group repository是作为一个public repository给用户使用的
所以当查找jar包的时候,如果代理资源库在前面,那就是先从远程去查找jar包,而不是先从宿主仓库(本地仓库)去查找jar包
6、创建快照仓库Snapshot Repository
四、Maven设置
1、修改Maven的setting.xml文件
<!--nexus服务器,id为组仓库name-->
<servers>
<server>
<id>whitrue_group</id>
<username>admin</username>
<password>***</password>
</server>
<server>
<id>whitrue_hosted</id>
<username>admin</username>
<password>***</password>
</server>
</servers>
<!--仓库组的url地址,id和name可以写组仓库name,mirrorOf的值设置为central-->
<mirrors>
<mirror>
<id>whitrue_group</id>
<name>whitrue_group</name>
<url>http://******:8081/repository/whitrue_group/</url>
<mirrorOf>central</mirrorOf>
</mirror>
</mirrors>
2、Maven编译
mvn clean compile -U
3、Maven打包
mvn deploy
五、Pom文件设置
<distributionManagement>
<repository>
<!--release版本仓库-->
<id>nexus-releases</id>
<name>Nexus Release Repository</name>
<url>http://ip:8081/repository/whitrue_hosted/</url>
</repository>
<snapshotRepository>
<!--snapshot版本仓库-->
<id>nexus-snapshots</id>
<name>Nexus Snapshot Repository</name>
<url>http://ip:8081/repository/whitrue_snapshots/</url>
</snapshotRepository>
</distributionManagement>
<repositories>
<repository>
<!--支持下载snapshot版本jar包-->
<id>whitrue_group</id>
<url>http://ip:8081/repository/whitrue_group/</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>