我在 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 生命周期阈值”从“部署”更改为“安装”
或者在上游管道的脚本中,配置
withMaven(options: [pipelineGraphPublisher(lifecycleThreshold: 'install')]) {...}
注意:关于您的声明mavenSettingsConfig: 'e228f408-...'
,请注意您可以全局或在文件夹级别声明 Maven 设置,如Jenkins Pipeline Maven Integration > Features > Maven Settings中所述
添加回答
举报
0/150
提交
取消