詹金斯的增量构建

时间:2012-09-11 12:00:19

标签: maven jenkins maven-3 parameterized incremental-build

我使用的是Jenkins 1.462,maven版本是3.0.4。 在Jenkins我启用了复选框“增量构建 - 仅构建已更改的模块”

我想弄清楚两个问题:

  1. 增量构建是否足够? 例如,How do I trigger a Jenkins build of a single module in a multi-module Maven build from Subversion?表示它不能100%运行 第19页的http://www.slideshare.net/andrewbayer/7-habits-of-highly-effective-jenkins-users表示增量构建是对完整构建的补充,而不是替换。

  2. 是否增量构建 - 仅构建已更改的模块实际上是否按预期工作? 我的意思是什么?如果我有模块A,B,X,C,D。X使用A和B,C使用X,D使用C,我在X模块中进行更改。比我想要重新编译模块X(itslef),C(直接使用X)和D(即传递闭包; D使用C,使用C)。

  3. 注意:这是我为实现增量构建而做的唯一更改。

1 个答案:

答案 0 :(得分:3)

如Maven文档所述,增量构建至少在3.0.4之前不是非常可靠:

  

目前(3.0.4)Apache Maven不支持增量版本   好。

https://cwiki.apache.org/confluence/display/MAVEN/Incremental+Builds(第一行)

相反,我强烈建议使用这两种方法中的任何一种来加速构建:

  • 使用并行构建。根据我在大型项目中的经验,这非常有效,并且可以以最小(如果有)风险大大缩短构建时间。只需执行类似mvn -T 1.5C clean install https://cwiki.apache.org/confluence/display/MAVEN/Parallel+builds+in+Maven+3

  • 的内容即可
  • 如果您的模块是独立的,您可以将它们移动到不同的项目,并使用maven依赖项将它们粘合在一起。