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同级
<dependencies>...略</dependencies> <build>...略</build> <distributionManagement> <repository> <id>maven-releases</id> <name>maven-releases</name> <url>${这里填写从nexus页面上复制的maven-releases的url}</url> </repository> <snapshotRepository> <id>maven-snapshots</id> <name>maven-snapshots</name> <url>${这里填写从nexus页面上复制的maven-snapshots的url}</url> </snapshotRepository> </distributionManagement>
推送包
- 执行 "mvn deoloy"
- 此时报错 "...status: 401 Unauthorized",阐明我的项目配置正确
批改Maven软件配置
关上 ${maven根目录}/conf/settings.xml
- 减少nexus账号密码
- id要和在我的项目pom.xml中配置的统一
<servers> <server> <id>maven-releases</id> <username>admin</username> <password>${明码}</password> </server> <server> <id>maven-snapshots</id> <username>admin</username> <password>${明码}</password> </server></servers>
再次执行"mvn deploy"就不会报错了
刷新nexus页面上能够看到上传的包
- 我的项目版本不带"-SNAPSHOT"在"maven-releases"目录
- 否则在"maven-releases"目录
3. 创立我的项目并援用上一步的我的项目代码
批改Maven软件配置
关上 ${maven根目录}/conf/settings.xml
- 启用镜像,如果有其余镜像能够正文掉
- 重启IDE,pom.xml中像线上的库一样增加dependency即可应用
<mirror> <id>nexus-public</id> <mirrorOf>*</mirrorOf> <name>公有仓库</name> <url>${这里填写从nexus页面上复制的maven-public的url}</url></mirror>
参考资料
- docker部署Nexus
- maven配置nexus私服