部署maven工件而无需重建

时间:2017-08-17 15:53:28

标签: maven jenkins-pipeline

我们正在使用声明性管道,最新的Jenkins。构建在docker slave容器中执行,该容器具有maven和其他工具。我们当前的Jenkins文件类似于:

stage('build') { steps { sh 'mvn clean install'} }
stage('test') { /* functional tests using a different tool */ }
stage('publish') { 
    steps {
      // mvn clean deploy -DskipTests -DaltDeploymentRepository... (rebuilds, which we want to avoid, as its a multimodule project)
      // withMaven(options:[artifactsPublisher()] { } ... (from maven-pipeline-plugin)
    }
}

Jenkins经典模式有一个Maven Integration插件,它提供了一个部分" Deploy工件到Maven存储库"它使用Maven RedeployPublisher仅发布工件。我正在寻找相当于此的管道,我认为maven-pipeline-plugin可以做到这一点,但是找不到一个例子。任何指针赞赏!

1 个答案:

答案 0 :(得分:4)

我偶然发现了你的问题,寻找同样的事情,对我有用的是:

stage('Deploy') {
    sh "'${mvnHome}/bin/mvn' war:war deploy:deploy"
}

当然,您需要将war:war更改为要部署的工件的类型(因此jar:jarear:ear)。我发现这是基于this answer,但它似乎与maven-war-plugin以及maven-jar-plugin相关,尽管war中没有forceCreation选项目标。