我在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的developer分支)时,所有下游项目(及其develop分支)都定义了依赖项在他们对projectX的pom中,不会被触发。
怎么了?还是我需要在多分支项目的所有分支中检查该选项?还是我需要更改Jenkinsfile
中的某些内容?
谢谢
答案 0 :(得分:1)
要配置Jenkins Pipeline Maven集成以在“ mvn install”上触发下游管道:
更改全局配置:
或在上游管道的脚本中,配置withMaven(options: [pipelineGraphPublisher(lifecycleThreshold: 'install')]) {...}
注意:关于声明mavenSettingsConfig: 'e228f408-...'
,请注意,您可以全局或在Jenkins Pipeline Maven Integration > Features > Maven Settings中记录的文件夹级别声明Maven设置