Nexus-在项目中使用Maven私服,Deploy到私服、上传第三方jar包、在项目中使用私服jar包
场景
ubuntu server 上使用docker compose 部署nexus(图文教程):
https://blog.csdn.net/badao_liumang_qizhi/article/details/101111611
在上面已经实现部署nexus后的效果是
为什么要搭建私服
有时合作开发时,为了不泄露源码但是还能允许你调用,或者公司内部自己的依赖jar包,只能在本公司内用,并且再官方*仓库中没有。类似情况下都需要搭建maven私服。
注:
博客:
关注公众号
霸道的程序猿
获取编程相关电子书、教程推送与免费下载。
实现
deploy依赖到私服
配置认证信息
找到maven的安装目录
conf下的setting.xml中找到server节点。
配置认证节点,因为私服不是谁都能使用,所以需要配置用户名和密码,这里的密码是上面搭建nexus服务时所设置的密码。
<server> <id>nexus-releases</id> <username>admin</username> <password>admin123</password> </server> <server> <id>nexus-snapshots</id> <username>admin</username> <password>admin123</password> </server>
修改之后,保存。
注:
nexues-releases:用于发布release版本
nexus-snapshots:用于发布snapshot版本(快照版),快照版会自动加一个时间作为标识。
配置自动化部署
在项目的pom.xml中加入如下代码:
<distributionmanagement> <repository> <id>nexus-releases</id> <name>nexus release repository</name> <url>http://192.168.208.134:8081/repository/maven-releases/</url> </repository> <snapshotrepository> <id>nexus-snapshots</id> <name>nexus snapshot repository</name> <url>http://192.168.208.134:8081/repository/maven-snapshots/</url> </snapshotrepository> </distributionmanagement>
这里是使用idea新建的maven项目
注:
1.id名称要与settings.xml中servers配置的id保持一致。
2.项目版本号中有snapshot标识的,会发布到nexus snapshots respository,否则发布到nexus release repository,并根据id去匹配授权账号。
3.这里的url是nexus服务上的url。
部署
打开idea下的ternial,输入:
mvn deploy
可以看到其部署效果
此时刷新nexus服务的url,找到browse下的maven-snapshots
部署成功。
然后打开idea--settings-maven,然后勾选上总是更新快照。
这样就能用到最新的快照版本。
上传第三方jar包
有时在官方仓库没有的jar包,需要上传到私服上,供大家使用。
mvn deploy:deploy-file -dgroupid=com.google.code.kaptcha -dartifactid=kaptcha -dversion=2.3.2 -dpackaging=jar -dfile=c:\users\administrator\desktop\kaptcha-2.3.2.jar -durl=http://192.168.208.134:8081/repository/maven-releases/ -drepositoryid=nexus-releases
命令解释:
-dgroupid= 自定义
-dartifactid= 自定义
-dversion= 自定义
三个自定义,构成pom.xml文件中的坐标
-dpackaging=jar 上传的类型是jar类型
-dfile= jar的本地磁盘位置
-durl=
hosted资源库的地址
-drepositoryid=nexus-releases
setting.xml文件中配置的id
上传成功效果
此时再回到浏览器,刷新。
在项目中使用私服jar包
配置代理仓库
在需要从私服中下载jar包的项目的pom.xml中加入如下配置:
<repositories> <repository> <id>nexus</id> <name>nexus repository</name> <url>http://192.168.208.134:8081/repository/maven-public/</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>true</enabled> </snapshots> </repository> </repositories> <!-- 私服仓库配置:从私服下载--> <pluginrepositories> <pluginrepository> <id>nexus</id> <name>nexus plugin repository</name> <url>http://192.168.208.134:8081/repository/maven-public/</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>true</enabled> </snapshots> </pluginrepository> </pluginrepositories>
为什么是从public进行下载,
因为公共仓库是发行仓库和快照仓库的映射,把两个仓库结合起来。
下面这段代码
<releases> <enabled>true</enabled> </releases> <snapshots> <enabled>true</enabled> </snapshots>
作用是配置是否依赖发行版和是否依赖快照版。
怎样使用私服jar包。
找到要下载的jar包的坐标配置,加入到pom中,那么就会先从私服去找对应的jar包,然后再去官服去找jar包。
下一篇: php中的boolean(布尔)类型详解