java - 构建 SNAPSHOT 时不会触发 Jenkins Multibranch 项目
问题描述
我在 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
吗?
谢谢
解决方案
请参阅Pipeline Maven 插件常见问题解答 > 即使我使用“在构建 SNAPSHOT 依赖项时构建”,我的下游管道也不会被触发
要配置 Jenkins Pipeline Maven 集成以在“mvn install”上触发下游管道:
更改全局配置:
或者在上游管道的脚本中,配置
withMaven(options: [pipelineGraphPublisher(lifecycleThreshold: 'install')]) {...}
注意:关于您的声明mavenSettingsConfig: 'e228f408-...'
,请注意您可以在全局或文件夹级别声明 Maven 设置,如Jenkins Pipeline Maven Integration > Features > Maven Settings中所述
推荐阅读
- php - 用于 PHP 的 Elasticsearch 查询
- java - 继承会影响应用程序的性能吗?
- sql - 需要选择 2000 年首次购买的客户 ID - sql
- jquery - 在 JPList 库中排序 'OR' 而不是 'AND'
- r - 如何删除 R wordcloud 中的奇数字符
- mysql - 如何在查询中从表中排除记录?
- r - 如何在 Ubuntu 16.04 上将 Ms SQL 服务器与 R 连接?
- javascript - 结合 CSS 属性选择器 input[type = "text"] 和 input[type="email"]
- php - Laravel的PDF是空的
- java - 尝试在单个方法中选择和插入时出现多线程问题