maven - 无需重建即可部署 Maven Artifact

标签 maven jenkins-pipeline

我们正在使用声明式管道,最新的 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:jarear:ear )。我发现这个基于 this answer ,但似乎与 maven-war-plugin 有关,以及到 maven-jar-plugin ,虽然没有forceCreation war 中的选项目标。

关于maven - 无需重建即可部署 Maven Artifact ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45739800/

相关文章:

java - 如何找到 "Could not resolve placeholder"原因

java - 使用eclipse将项目转换为maven

maven - 我可以在 Groovy 变量名中包含奇数字符吗?

Jenkins,主机 key 验证失败,脚本返回退出代码 255

git - 在 Jenkins 管道 checkout 中禁用更改日志

Jenkins 在 dsl 中禁用标记每个构建

java - Gradle:从下载的 POM 中获取 Maven 存储库列表

android - 如何设置 Artifactory 使用 https ://maven. google.com 作为远程仓库?

java - 在 IntelliJ 的 Java 项目中使用 .gdsl 文件

windows - Windows下如何使用docker agent设置jenkins blue ocean