nexus搭建maven私服
说到maven私服每个公司都有,比如我上一篇文章介绍的自定义日志starter,就可以上传到maven私服供大家使用,每次更新只需deploy一下就行,以下就是本人搭建私服的步骤
使用docker安装nexus
#拉取镜像
docker pull sonatype/nexus3:latest
#创建挂在目录,容器数据与宿主机互通,数据持久化到宿主机
#容器重启数据不会丢失,想想如果是mysql,不挂载的话重启容器就没了
mkdir /var/dockerdata/nexus/nexus-data
mkdir /var/dockerdata/nexus/nexus-logs
#授权,因为启动容器时nexus会往宿主机目录写数据
chmod o+rwx -R /var/dockerdata/nexus/nexus-data
chmod o+rwx -R /var/dockerdata/nexus/nexus-logs
#启动容器,建议使用docker-compose来搞
docker run -d \
--name nexus3 \
-p 6031:8081 \
--restart=always \
-e "INSTALL4J_ADD_VM_PARAMS=-Xms128m -Xmx512m -XX:MaxDirectMemorySize=512m -Djava.util.prefs.userRoot=/nexus-data/javaprefs" \
-v /var/dockerdata/nexus/nexus-data:/nexus-data \
-v /var/dockerdata/nexus/nexus-logs:/nexus-logs \
-e TZ=Asia/Shanghai \
sonatype/nexus3:latest
#nexus3 默认启动是2703M内存,为了因为内存不够导致启动失败或内存占用过多所以指定内存
-e "INSTALL4J_ADD_VM_PARAMS=-Xms128m -Xmx512m -XX:MaxDirectMemorySize=512m -Djava.util.prefs.userRoot=/nexus-data/javaprefs"
访问ip:6031看到这个界面就成功了
登录重置密码,会提示密码在哪个目录的,直接去提示的目录找就行
分别创建release,snapshot,center,public仓库。
release:Release 版本是一个正式发布的版本,表示该版本已经经过测试和验证,不会再有频繁的变化。
snapshot:Snapshot 版本是一种开发中的版本,表示该版本尚未正式发布,可能会频繁发生变化,每次构建时,Maven 会检查远程仓库中是否有新的 Snapshot 版本可用。如果有,Maven 会下载最新的 Snapshot 版本。
center:远程仓库,私服不存在就会通过这个仓库下载,一般都配置阿里的仓库镜像
public:公共仓库,nexus上创建时选混合类型
创建release仓库
创建snapshot仓库
创建中央仓库
创建公共仓库
创建完了就这样,其他的可以删掉了
修改maven的setting.xml,填写nexus服务器信息
mirror中的url为nexus私服的公共仓库,id与server中的id要一致
把项目打包上传到nexus,pom文件配置distributionManagement标签,其中的id要与setting.xml中的id一致
如果想打包release版本,就要把version标签的snapshot去掉
去nexus仓库看已经上传上去了
引入release版本的话直接在这里复制坐标
在别的工程引入成功
这里能成功引入是因为上面我们在maven的setting.xml里配置了nexus仓库的地址,它会从这个地址去找依赖,私服找不到就会根据ming-center仓库配置的中央地址去下载。