首页 > 解决方案 > 将 Artifactory 集成到 Jenkins 流水线中

问题描述

我正在尝试将 Artifactory 集成到我的 Jenkins 管道中,以便将 Maven 工件推送到 Artifactory。

我目前的理解是,我应该在 Maven 的deploy生命周期中使用 Jenkins 管道而不是通过 Maven 插件来部署构建的 Maven 工件。

根据我到目前为止阅读的文档,我认为我的管道中需要类似的代码:

stage('Build') {
  steps {
    /** Start a docker container with maven and run mvn clean install */
  }
}

stage ('Deploy to Artifactory') {
  steps {
    script {
      def server = Artifactory.server 'my-server-id'

      def rtMaven = Artifactory.newMavenBuild()

      rtMaven.deployer.addProperty("status", "in-qa")
      buildInfo = rtMaven.run pom: 'pom.xml', goals: 'clean install'
      server.publishBuildInfo buildInfo
    }
  }
}

但是,我无法完全理解这是在做什么,我无法找到更详细的文档,除了这个 JFrog 博客条目这个 JFrog Confluence 页面

特别是,如果我为 run 指令指定目标,它将再次运行 Maven 管道,这不会产生太大影响,因为管道已经在第一阶段运行(例如“构建”)。

另外我应该注意,我在 docker 容器中运行 maven 构建,所以似乎使用上述设置对我来说还不够。

是否有解决此问题的最佳做法?

我正在寻找一种方法来收集我在 docker 容器中使用 maven 构建的工件并将它们上传到 Artifactory 而无需再次运行 maven。

标签: mavenjenkinsjenkins-pipelineartifactory

解决方案


推荐阅读