Maven私有仓库-Nexus3
- 工作中,可能需要封装一些通用的工具类库
- 但是公司代码较为敏感,一般不能开放到公共仓库中
- 此时可以使用Nexus3搭建公司内部使用的私有仓库
- 视频版:BiliBili
Demo步骤
- 使用docker创建Nexus3服务
创建项目并推送仓库
- 修改项目pom.xml文件配置
- 修改Maven软件配置
- 使用"mvn deploy"命令,推送到到仓库
创建项目并引用上一步的项目
- 修改Maven软件配置
- 重启IDE
- 使用"mvn install"命令,安装依赖
1. 使用docker创建nexus3服务
使用docker创建nexus3容器
- 访问:http://127.0.0.1:8081
- 较吃资源,启动速度较慢,显示无法访问页面就多等一会儿(电脑渣的可能要个三五分钟,比如我的)
docker run -d -p 8081:8081 --name nexus sonatype/nexus3
获取nexus3密码
点击页面右上角的"Sign in",按弹窗提示找到默认密码
- 默认账号:admin
- 默认密码:容器内的 "/nexus-data/admin.password"
- 会提示重置密码,改个记得住的密码(或者用默认密码),后面配置需要用到
- 如下图,复制"maven-releases"/"maven-snapshots"仓库地址
nexus-public是一个仓库分组,默认包含以下仓库
- maven-releases:本地release库
- maven-snapshots:本地snapshots库
- maven-central:代理中央maven库,可以改成国内代理,如阿里云(https://maven.aliyun.com/repository/public)
2. 创建项目并推送仓库
修改项目pom.xml文件配置
直接改造Maven项目(或者新建一个Maven项目)
- 执行"mvn package"能打包出jar的项目就行
如下在pom.xml添加nexus3地址信息
- 与dependencies/build同级
...略
...略
maven-releases
maven-releases
${这里填写从nexus页面上复制的maven-releases的url}
maven-snapshots
maven-snapshots
${这里填写从nexus页面上复制的maven-snapshots的url}
推送包
- 执行 "mvn deoloy"
- 此时报错 "...status: 401 Unauthorized",说明项目配置正确
修改Maven软件配置
打开 ${maven根目录}/conf/settings.xml
- 增加nexus账号密码
- id要和在项目pom.xml中配置的一致
maven-releases
admin
${密码}
maven-snapshots
admin
${密码}
再次执行"mvn deploy"就不会报错了
刷新nexus页面上可以看到上传的包
- 项目版本不带"-SNAPSHOT"在"maven-releases"目录
- 否则在"maven-releases"目录
3. 创建项目并引用上一步的项目代码
修改Maven软件配置
打开 ${maven根目录}/conf/settings.xml
- 启用镜像,如果有其他镜像可以注释掉
- 重启IDE,pom.xml中像线上的库一样添加dependency即可使用
nexus-public
*
私有仓库
${这里填写从nexus页面上复制的maven-public的url}