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

时间:2019-02-12 15:03:42

标签: jenkins nexus

我有一个像这样的项目结构:

- 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中,我有一个配置为 parent-project pom.xml 的作业。现在,我想在jenkins完成构建过程之后,将我的子项目的工件发布到联系。到目前为止,我所做的是:

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

让我感到困惑的是:

  1. 我应该在Maven Artifact会话中放什么?我尝试了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仓库信息的会话,为什么还要在这里再次定义它?
  3. 是否有可能像我在月食中那样使用mvn clean deploy直接配置作业构建,以将工件推向联系?如果是,那么我不再需要Nexus Repository Manager Publisher吗?以及如何像在/.m2文件夹中的setting.xml中那样配置nexus服务器的身份验证?

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

1 个答案:

答案 0 :(得分:0)

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