云计算、AI、云原生、大数据等一站式技术学习平台

网站首页 > 教程文章 正文

Maven项目如何发布jar包到Nexus私服

jxf315 2025-06-10 16:06:16 教程文章 11 ℃

Maven项目发布jar包到Nexus私服


在编码过程中,有些通用的代码模块,有时候我们不想通过复制粘贴来粗暴地复用。因为这样不仅体现不了变化,也不利于统一管理。这里我们使用maven deploy的方式,将通用的模块打成jar包,发布到Nexus私服,让其他的项目来引用,以更简洁高效的方式来实现复用和管理。


一、Maven的settings.xml文件中设置标签



<server>

<id>nexus-releases</id>

<username>admin</username>

<password>admin123</password>

</server>

<server>

<id>nexus-snapshots</id>

<username>admin</username>

<password>admin123</password>

</server>

此处设置的用户名和密码都是nexus的登陆配置

二、在项目的pom.xml文件中设置



<distributionManagement>

<repository>

<id>nexus-releases</id>

<url>http://192.168.1.123:8081/repository/maven-releases/</url>

</repository>

<snapshotRepository>

<id>nexus-snapshots</id>

<url>http://192.168.1.123:8081/repository/maven-snapshots/</url>

</snapshotRepository>

</distributionManagement>


在此,url都是Nexus相应仓库的链接地址,这一步做完之后,已经完成了发布所需要的基本配置。试试命令:mvn deploy



关注“IT人才圈”微信公众号,发送"01"获取更多相关源码教程或咨询。

注意:<server>中的<id>要和<repository>、<snapshotRepository>的<id>一致,maven在发布时,会根据此id来查找相应的用户名密码进行登录验证,并上传文件。

在Nexus后台可搜索到新上传的Jar包



三、发布的灵活性配置

maven会判断版本后面是否带了-SNAPSHOT,如果带了就发布到snapshots仓库,否则发布到release仓库。这里我们可以在pom.xml文件中,设置



<groupId>com.test</groupId>

<artifactId>my-test</artifactId>

<packaging>jar</packaging>

<version>${project.release.version}</version>

<properties>

<java.version>1.8</java.version>

<project.release.version>1.0-SNAPSHOT</project.release.version>

</properties>

<profiles>

<profile>

<id>product</id> <properties>

<project.release.version>1.0</project.release.version>

</properties>

</profile>

</profiles>

说明:通过占位符${project.release.version}来控制需要发布的版本,用命令mvn deploy -P product,发布my-test的1.0版本到releases库。如果使用命令mvn deploy,则默认使用 1.0-SNAPSHOT版本号,将发布my-test的1.0-SNAPSHOT版本到snapshots库。


四、发布时遇到的一些问题

  1. 部署到snapshot仓库时,jar包会带上时间戳,Maven会自动取相应版本最新的jar包;
  2. Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.8.2:deploy (default-deploy) on project my-test: Failed to deploy artifacts: Could not transfer artifact...from/to release...

部署到release仓库时,相同版本的jar包不能提交。

原因:因为release的部署策略是【disable redeploy】,不允许覆盖更新组件。

解决办法:修改一下版本号,再提交即可。

最近发表
标签列表