将Artifactory集成到Jenkins管道中

时间:2018-05-28 14:17:59

标签: maven jenkins jenkins-pipeline artifactory

我正在尝试将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
    }
  }
}

但是,我无法完全理解这是做什么的,我无法找到更详细的文档,除了this JFrog blog entrythis JFrog Confluence page

特别是似乎如果我为run指令指定目标,它将再次运行Maven Pipeline,由于管道已经在第一阶段运行(例如' Build'),因此不会有太大作用。

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

有最佳做法可以解决这个问题吗?

我正在寻找的是一种收集我在Docker容器中使用maven构建的工件的方法,并将它们上传到Artifactory而不再运行maven。

0 个答案:

没有答案