Continuous integration 增量连续积分

Continuous integration 增量连续积分,continuous-integration,Continuous Integration,我为多个项目建立了持续集成,通常包括: 汇编 测试; javadoc生成; 依赖性报告; 静态分析PMD、CPD、FindBugs。 这些目标通常位于ci目标中,该目标清理工作区并运行上述所有目标。我已经尝试了大多数可能的技巧来让它们运行得更快,包括ant并行任务,但是这些都太慢了 我知道管道模式,例如提交时编译,每晚进行静态分析,但我想获得每个提交的所有信息。通过查看Eclipse,我可以看到: 增量编译是绝对可能的; 该模型似乎有增量分析。 是否可以执行增量CI生成,以减少提交后的等待时间?

我为多个项目建立了持续集成,通常包括:

汇编 测试; javadoc生成; 依赖性报告; 静态分析PMD、CPD、FindBugs。 这些目标通常位于ci目标中,该目标清理工作区并运行上述所有目标。我已经尝试了大多数可能的技巧来让它们运行得更快,包括ant并行任务,但是这些都太慢了

我知道管道模式,例如提交时编译,每晚进行静态分析,但我想获得每个提交的所有信息。通过查看Eclipse,我可以看到:

增量编译是绝对可能的; 该模型似乎有增量分析。
是否可以执行增量CI生成,以减少提交后的等待时间?

您还没有指定要使用的CI系统,但不管怎样,您是否考虑过使用maven而不是ant作为生成工具

然后,您可以针对您的项目设置两个构建:

第一个构建由签入触发,并运行编译+单元测试 第二个由第一个触发,并运行其他所有操作
我会尽一切努力获得最有用的报告。

您还没有指定您使用的ci系统,但不管怎样,您是否考虑过使用maven而不是ant作为构建工具

然后,您可以针对您的项目设置两个构建:

第一个构建由签入触发,并运行编译+单元测试 第二个由第一个触发,并运行其他所有操作
我会尽我所能以最小的努力获得最有用的报告。

谢谢您的回答。我确实考虑过这种“阶段性”的构建模式,但它并不是我所需要的足够快。在Eclipse中,findbugs插件在不到一秒钟的时间内发现新的bug,因为它只分析更改。这就是我要找的。如果你的构建工具支持它,你可以在hudson中做一些增量的事情,并且你确保不在工作中运行清理。例如,将SBT与scala结合使用可以提供一些非常快速的构建。问题是,您并没有在构建之间进行清理,这意味着有一整类错误是您的CI无法发现的,而另一类错误只出现在增量构建中。我理解对速度的渴望,这就是为什么我通常提倡一种快速失败的分阶段方法,但除此之外,在构建之前进行清理是一种最佳实践。此外,如果您已经在IDE中获得了非常快速的错误报告,为什么您不能允许它在CI中更加严格?我可以简单地跳过“清理”部分,但据我所知,这样做不安全。我这样做的原因是,理想情况下,我会使用IDE中不一定安装的工具/插件从CI服务器收到快速反馈。谢谢您的回答。我确实考虑过这种“阶段性”的构建模式,但它并不是我所需要的足够快。在Eclipse中,findbugs插件在不到一秒钟的时间内发现新的bug,因为它只分析更改。这就是我要找的。如果你的构建工具支持它,你可以在hudson中做一些增量的事情,并且你确保不在工作中运行清理。例如,将SBT与scala结合使用可以提供一些非常快速的构建。问题是,您并没有在构建之间进行清理,这意味着有一整类错误是您的CI无法发现的,而另一类错误只出现在增量构建中。我理解对速度的渴望,这就是为什么我通常提倡一种快速失败的分阶段方法,但除此之外,在构建之前进行清理是一种最佳实践。此外,如果您已经在IDE中获得了非常快速的错误报告,为什么您不能允许它在CI中更加严格?我可以简单地跳过“清理”部分,但据我所知,这样做不安全。我想这样做的原因是,理想情况下,我会使用IDE中不一定安装的工具/插件从CI服务器接收快速反馈。