Jenkins构建到Nexus后如何上传工件

问题描述 投票:0回答:1

我有这样的项目结构:

- parent-project : pom.xml
  + child-project: pom.xml
  + child-project-2: pom.xml

我想将子项目的工件上传到Nexus,所以在我的子项目的pom.xml文件中,我定义了:

    <distributionManagement>
        <repository>
            <id>nexus</id>
            <url>http://my-repo:8081/repository/maven-releases/</url>
        </repository>
        <snapshotRepository>
            <id>nexus</id>
            <url>http://my-repo:8081/repository/maven-snapshots/</url>
        </snapshotRepository>
    </distributionManagement>

当我使用eclipse中的mvn clean deploy运行子项目时,子项目的jar文件按预期上传到my-repo nexus存储库。

在Jenkins中,我有一个使用父项目pom.xml配置的作业。现在我想在jenkins完成构建过程之后将我的子项目的工件发布到nexus。到目前为止我所做的是:

  1. 在Jenkins下载并安装了Nexus平台插件
  2. 使用Jenkins系统配置中的Nexus 3.x服务器的凭据配置Nexus Repository Manager服务器
  3. 在Post-Build选项卡中,我添加了一个新的Nexus Repository Manager Publisher,其中包含有关我的nexus存储库的信息,但现在陷入了Maven Artifact会话,如下所示:enter image description here

让我困惑的是:

  1. 我应该在Maven神器会话中加入什么?我尝试了child-project/target/child-project-0.0.1-SNAPSHOT.jar,但它没有用。詹金斯抛出一个例外

java.io.IOException:child-project / target / child-project-0.0.1-SNAPSHOT.jar不存在

  1. 为什么我需要在这里指定工件的版本?这是否意味着每次我更改我的子项目的版本,那么我必须来这里修改版本?
  2. 如果我已经在我的子项目的pom.xml中定义了有关Nexus repo的Info会话,为什么我需要再次在这里定义它?
  3. 是否有可能直接使用mvn clean deploy配置作业构建,就像我在eclipse中一样将工件推送到nexus?如果是,那么我不再需要Nexus Repository Manager Publisher了吗?我如何配置nexus服务器的身份验证,就像我在/.m2文件夹中的settings.xml中一样?

任何人都可以帮我澄清以上几点吗?非常感谢你!

jenkins nexus
1个回答
0
投票

你不需要插件你可以在你的工作中从shell运行maven clean install deploy我正在使用管道语法所以它是实际代码你可以使用jenkins ui创建一个shell步骤

© www.soinside.com 2019 - 2024. All rights reserved.