为了账号安全,请及时绑定邮箱和手机立即绑定

构建 SNAPSHOT 时不会触发 Jenkins Multibranch 项目

构建 SNAPSHOT 时不会触发 Jenkins Multibranch 项目

烙印99 2022-11-30 11:19:05
我在 Jenkins (v2.164.3) 中有不同的 maven 项目,它们驻留在我们本地的 gitlab 服务器中。所有项目定义如下Jenkinsfile:node {    stage('git') {        checkout scm    }    stage('compile') {        withMaven(mavenSettingsConfig: 'e228f408-7768-4374-b8e1-259321e2fa99') {            bat "mvn clean compile"        }    }    stage('test') {        withMaven(mavenSettingsConfig: 'e228f408-7768-4374-b8e1-259321e2fa99') {            bat "mvn test"        }    }    stage('install') {        withMaven(mavenSettingsConfig: 'e228f408-7768-4374-b8e1-259321e2fa99') {            bat "mvn install -DskipTests"        }    }}在多分支项目的配置中,该选项Build whenever a SNAPSHOT dependency is built被选中。(几个分支配置中的同一个选项不勾选)不幸的是,在我的例子中,这个检查似乎被忽略了,因为当一个项目(projectX)被构建时(例如开发分支,它创建了一个 SNAPSHOT jar),所有下游项目(带有它们的开发分支),在它们的 pom 中定义了一个依赖项到 projectX,不会被触发。怎么了 ?或者我是否需要检查多分支项目所有分支中的选项?或者我需要改变我的东西Jenkinsfile吗?谢谢
查看完整描述

1 回答

?
一只萌萌小番薯

TA贡献1795条经验 获得超7个赞

请参阅Pipeline Maven 插件常见问题解答 > 即使我使用“每当构建 SNAPSHOT 依赖项时构建”,我的下游管道也不会被触发

要配置 Jenkins Pipeline Maven 集成以触发“mvn install”上的下游管道:

  • 要么改变全局配置:

    • 导航到“管理 Jenkins/全局工具配置”

    • 单击“添加发布者”并选择“管道图发布者”

    • 在“下游管道触发器”部分,将“Maven 生命周期阈值”从“部署”更改为“安装”

//img1.sycdn.imooc.com//6386cbc700011f1517300485.jpg

  • 或者在上游管道的脚本中,配置withMaven(options: [pipelineGraphPublisher(lifecycleThreshold: 'install')]) {...}

注意:关于您的声明mavenSettingsConfig: 'e228f408-...',请注意您可以全局或在文件夹级别声明 Maven 设置,如Jenkins Pipeline Maven Integration > Features > Maven Settings中所述


查看完整回答
反对 回复 2022-11-30
  • 1 回答
  • 0 关注
  • 114 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信