Maven建筑没有清洁

时间:2010-11-22 08:59:27

标签: maven-2 build-process continuous-integration maven

当我们在不进行mvn clean的情况下构建Maven项目时,我们有时会遇到“voodoo错误”,例如NoSuchMethodError。我相信这些是由移动/重命名文件引起的。

我不想在CI中使用clean选项,因为它会使构建过程花费更长时间。还有另一种选择吗?

2 个答案:

答案 0 :(得分:2)

您应该始终在CI版本中使用clean。 CI构建必须是可重现的,并且需要从头开始!

关于这个过程需要更长的时间:使用CI(其中之一)的重点是你可以在它运行时继续工作,所以这应该不是问题。

但我喜欢做的是每个项目使用多层CI:

  • 第一个作业编译并执行一些基本测试*,此构建应该不到5分钟
  • 如果成功,第二个作业将执行所有测试*,代码指标,javadocs等
  • 如果成功,则第三个作业将构建部署到测试服务器

(或者您可以让第一个作业同时触发第二个和第三个作业)

*您可以通过为每个配置文件配置不同的maven surefire插件来实现一些测试/所有测试功能。

答案 1 :(得分:0)

我们有三个构建目标:

  • 持续集成:无需执行清理即可构建,仅运行Clover标识的测试。这在每次提交后运行。成功后,它将部署到测试服务器。

  • 每晚:干净的构建并运行每一次测试。这每晚都有。成功后,它将部署到测试服务器。

  • 发布:与Nightly plus相同,创建源控件标签。手动运行。

夜间建筑更值得信赖,因为进行了清洁的建造。但是,CI构建更快,意味着在这些情况下反馈更快。

这里存在构建时间的根本问题,但这至少是一种解决方法,而你会看到更永久的方法来解决这个问题。