docker 搭建 nexus
一、有三种专门的Maven仓库管理软件可以用来帮助大家建立私服:Apache基金会的Archiva、JFrog的Artifactory和Sonatype的Nexus。而Nexus是当前最流行的Maven仓库管理工具。
私服是一种特殊的远程仓库,它是架设在局域网内的仓库服务,私服代理广域网上的远程仓库。供局域网内的Maven用户使用。当Maven需要下载构件的时候,它从私服请求,如果私服上不存在该构件,则从远程仓库下载,缓存在私服上以后,再为Maven的下载请求提供服务。此外,一些无法从外部仓库下载到的构件也能从本地上传到私服上供大家服务。
二、安装nexus
环境说明
操作系统:centos 7.6
java版本:1.8.0_211
maven版本:3.6.3
docker版本:19.03.5
查找镜像
docker search nexus
拉取镜像
拉取最新版本,目前最新版本是3.20.1
docker pull sonatype/nexus3
持久化目录
mkdir -p /data/nexus/data
chmod 777 -R /data/nexus/data
启动镜像
docker run -d --name nexus3 -p 8081:8081 --restart always -v /data/nexus/data:/nexus-data sonatype/nexus3
查看日志
docker logs -f nexus3
等待几分钟时间,出现 Started Sonatype Nexus OSS 表示启动好了。
三、访问nexus
打开浏览器,访问 http://192.168.31.183:8081/
点击右侧的登录
image查看管理员admin
密码
cat /data/nexus/data/admin.password
四、添加阿里云maven代理
点击settings->Repository->Repositories
点击Create repositoty按钮
image选择maven2 (proxy)
image填写如下两个字段,分别是代理库的名称,所代理的上层库的url。阿里云url为:http://maven.aliyun.com/nexus/content/groups/public/
image滚动到页面最下方,点击“Create repositoty”按钮。
image可以看到刚刚新建的代理库已经存在了。
image重新配置maven-public组,使其包含新建的aliyun-maven。在如上页面,点击maven-public,进入到配置页面。按下图进行修改。把aliyun-maven移至右侧,并向上移至第一位。然后点击保存。
image点击左侧菜单Repositoty>Repositories,进入到仓库列表页面,点击maven-public一行的copy按钮,然后复制弹出的url,后面配置maven时需要使用。
imageMaven用到的Repositories说明:
maven-central:maven中央库,默认从https://repo1.maven.org/maven2/拉取jar
maven-releases:私库发行版jar
maven-snapshots:私库快照(调试版本)jar
maven-public:仓库分组,把上面三个仓库组合在一起对外提供服务,在本地maven基础配置settings.xml中使用。
如果不够用,自己也可以根据博文上面的仓库类型进行选用创建。
四、配置maven
修改配置文件
- (1)配置settings.xml 设置全局
添加服务器认证信息,增加红色部分内容
<server>
<id>maven-releases</id>
<username>admin</username>
<password>abcd1234</password>
</server>
<server>
<id>maven-public</id>
<username>admin</username>
<password>abcd1234</password>
</server>
</servers>
注意:修改为自己设置的密码。
增加mirrors
<mirror>
<id>maven-public</id>
<name>maven-public</name>
<url>http://localhost:8081/repository/maven-public/</url>
<mirrorOf>*</mirrorOf>
</mirror>
</mirrors>
注意:修改ip地址为服务器ip
单个项目使用私库:
- pom.xml
<repositories>
<repository>
<id>maven-public</id>
<name>maven-public</name>
<url>http://10.168.4.75:8081/repository/maven-public/</url>
<layout>default</layout>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
需要注意的是:局部配置优先于全局配置。 配置优先级从高到低:pom.xml> user settings > global settings
五、仓库没有的jar,可以上传到nexus私服。
回到首页,点击Upload,上传到 maven-relaases,Extension会自动填充
image.png参考:
https://www.cnblogs.com/knowledgesea/p/11190579.html
https://www.cnblogs.com/xiao987334176/p/12108560.html
https://blog.csdn.net/ThinkWon/article/details/94346681
https://www.cnblogs.com/jingmoxukong/p/6050172.html