maven发布jar包到nexus

Posted yuzjang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了maven发布jar包到nexus相关的知识,希望对你有一定的参考价值。

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

第一:maven的settings.xml文件中设置<server>标签

    <server>
      <id>release</id>
      <username>admin</username>
      <password>admin123</password>
    </server>

    <server>
      <id>snapshot</id>
      <username>admin</username>
      <password>admin123</password>
    </server>

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

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

<distributionManagement>
    <repository>
        <id>release</id>
        <url>http://192.168.1.123:8081/nexus/content/repositories/releases/</url>
    </repository>

    <snapshotRepository>
        <id>snapshot</id>
        <url>http://192.168.1.123:8081/nexus/content/repositories/snapshots/</url>
    </snapshotRepository>
</distributionManagement>

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

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

第三:发布的灵活性配置

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包不能提交。解决办法是修改一下版本号,再提交即可。

3.持续更新...

以上是关于maven发布jar包到nexus的主要内容,如果未能解决你的问题,请参考以下文章

导入第三方Jar包到Nexus私服

maven上传jar包到nexus私服后的存放路径 以及 使用IDEA上传jar包的步骤

手动发布本地jar包到Nexus私服

idea 上传jar包到nexus

如何上传jar包到maven仓库

maven deploy 上传jar包到私有仓库