当前位置: 首页 > 面试题库 >

Jenkins的增量构建

季凡
2023-03-14
问题内容

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

我想找出两个问题:

  1. 增量构建是否足够? 在这里,如何在Subversion的多模块Maven构建中触发单个模块的Jenkins构建?例如,据说它不能以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)。

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


问题答案:

如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依赖项将它们粘合在一起。



 类似资料:
  • 本文向大家介绍gradle中的增量构建浅析,包括了gradle中的增量构建浅析的使用技巧和注意事项,需要的朋友参考一下 文章目录 简介增量构建自定义inputs和outputs运行时API隐式依赖输入校验自定义缓存方法输入归一化其他使用技巧 简介 在我们使用的各种工具中,为了提升工作效率,总会使用到各种各样的缓存技术,比如说docker中的layer就是缓存了之前构建的image。在gradle中

  • 问题内容: 我有一个在Jenkins中构建的应用程序,并且想要部署到Octopus。在执行此操作时,我必须创建一个发送到Octopus的发行版本。对于此次发布的版本我必须给一个号码(例如:) 如何使版本号自动递增?(例如:我已经构建了应用程序,并在Octopus中创建了发行​​版本号4.8,下次创建应用程序时,我想创建发行版号4.9) 谢谢 问题答案: 您可以使用job属性存储版本,然后在每次运行

  • 问题内容: 一个人如何使用Maven支持增量构建?那里有指南吗?(Google的最佳搜索结果令人失望) 问题答案: Maven默认情况下以增量方式生成,但是事实证明,编译器插件(即javac的核心)是如此之快,以至于每次构建新代码都不会成为代码库大小合理的瓶颈,而不是与构造大型程序集或运行大型测试进行比较套房。(与大多数语言一样,Java的编译速度比C ++快得多。)

  • 问题内容: 如果长变量声明为:- 私有易失性长计数器= 0; 现在,如果我使用预增量运算符对其进行增量,那么该操作将是原子的吗? 如果是,那么它将比对象的增量效率更高吗? 问题答案: 关键字只能解决可见性问题。您必须使用或方法/块来实现原子性(并发编程中的原子性)。 今天又发表了一篇文章:演示何时需要挥发物

  • 问题内容: 当我偶然发现名为JSpeed-Javascript优化的项目时,我正在浏览Google Code。 我注意到优化之一是更改为for循环语句。 优化之前 优化后 我知道前后的增量是什么,但是知道如何加快代码速度吗? 问题答案: 这是我阅读并可以回答你的问题:“前递增()加一的值,然后返回;相反,收益则增加了一个给它,这 _在理论上_中创建一个临时变量存储的值的结果在执行增量操作之前”。