我们正在使用声明式管道,最新的 Jenkins。构建在 docker slave 容器中执行,该容器具有 maven 和其他工具。我们当前的 Jenkinsfile 类似于:
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 集成插件,它提供了一个部分“将 Artifact 部署到 Maven 存储库”,它使用 Maven RedeployPublisher 仅发布 Artifact 。我正在寻找与此等效的管道,我认为 maven-pipeline-plugin 可以做到这一点,但找不到示例。任何指针表示赞赏!
最佳答案
我偶然发现你的问题在寻找同样的东西,对我有用的是:
stage('Deploy') {
sh "'${mvnHome}/bin/mvn' war:war deploy:deploy"
}
当然,您需要将 war:war 更改为要部署的 Artifact 类型(例如
jar:jar
或 ear:ear
)。我发现这个基于 this answer ,但似乎与 maven-war-plugin
有关,以及到 maven-jar-plugin
,虽然没有forceCreation war
中的选项目标。
关于maven - 无需重建即可部署 Maven Artifact ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45739800/