【发布时间】:2014-10-30 21:40:15
【问题描述】:
我有一个 Jenkins / Maven / Git 多模块项目,其中包含一个子模块(由承包商开发,没有什么可以改变它)。由于 Git 和子模块,我必须在我的 Linux 中克隆存储库,使用命令“git clone --recursive ssh://xxxxxxx.git”。
这意味着我必须勾选“高级子模块行为”和“递归更新子模块”的 Jenkins Git 插件选项,以便填充所有模块(否则子模块仍然为空)。
所以我或多或少有这种配置:
在 Jenkins 中一切正常构建('mvn clean install')。仅在尝试构建发布版本时才会出现此问题
子模块设置为特定版本 - 3.3.3-SNAPSHOT,无法更改。依赖此子模块的其他模块将依赖项设置为版本 3.3.3-SNAPSHOT。不幸的是,当命令:
mvn release:prepare -DreleaseVersion=0.1.2-test -DdevelopmentVersion=1.0.1-SNAPSHOT
Jenkins 会修改项目中每个模块中的所有 pom 文件包括子模块。那时,当 maven 尝试构建时,没有子模块版本 0.1.2-test 并且一切都死了。当我对 Jenkins 留下的文件与我们存储库中的文件进行比较时,我看到:
>/opt/tools/bin/git diff pom.xml | cat
diff --git a/pom.xml b/pom.xml
index 5e4cc3c..2ac2db6 100644
--- a/pom.xml
+++ b/pom.xml
<artifactId>workingLib</artifactId>
- <version>3.3.3-SNAPSHOT</version>
+ <version>0.1.2-test</version>
<packaging>pom</packaging>
有没有办法告诉 Jenkins/Maven 不要更新子模块而是更新所有其他模块?
谢谢,
凯文
【问题讨论】:
标签: git maven jenkins maven-release-plugin