maven - Jenkins 中的增量构建

标签 maven jenkins maven-3 parameterized incremental-build

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

我想弄清楚2个问题:

  • 增量构建是否足够?
    这里How do I trigger a Jenkins build of a single module in a multi-module Maven build from Subversion?例如,说明它不能 100% 工作
    这里http://www.slideshare.net/andrewbayer/7-habits-of-highly-effective-jenkins-users第 19 页指出增量构建是对完整构建的补充,而不是替代。
  • 增量构建 - 仅构建更改的模块实际上是否按预期工作?
    我这是什么意思?如果我有模块 A、B、X、C、D。X 使用 A 和 B,C 使用 X,D 使用 C,我在 X 模块中进行更改。比我想重新编译模块 X (itslef)、C (直接使用 X) 和 D (在传递闭包中;D 使用 C,使用 C)。

  • 注意:这是我为启用增量构建所做的唯一更改。

    最佳答案

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

    Currently (3.0.4) Apache Maven doesn't support incremental builds very well.



    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 依赖项将它们粘合在一起。
  • 关于maven - Jenkins 中的增量构建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12369233/

    相关文章:

    hadoop - (cmake-compile) 项目 hadoop-common : make failed with error code 2

    jenkins - MS Web Deploy 忽略 <setParameter> 条目 + 写入错误的文件

    mercurial - Jenkins mercurial poll SCM 排除文件或其他过滤器

    curl - 使用 Golang 的 net/http header

    java - 如何检测激活了哪些 Maven 配置文件?

    maven - `finalName` maven-jar-plugin 配置中不允许使用参数

    java - 由于 surefire 插件 forkmode 导致单元测试失败

    Maven 无法解析依赖关系 spark

    maven - Nexus:找不到 Artifact

    java - Spring Boot和Spring Cloud配置客户端错误