当我们在不进行mvn clean
的情况下构建Maven项目时,我们有时会遇到“voodoo错误”,例如NoSuchMethodError。我相信这些是由移动/重命名文件引起的。
我不想在CI中使用clean选项,因为它会使构建过程花费更长时间。还有另一种选择吗?
答案 0 :(得分:2)
您应该始终在CI版本中使用clean。 CI构建必须是可重现的,并且需要从头开始!
关于这个过程需要更长的时间:使用CI(其中之一)的重点是你可以在它运行时继续工作,所以这应该不是问题。
但我喜欢做的是每个项目使用多层CI:
(或者您可以让第一个作业同时触发第二个和第三个作业)
*您可以通过为每个配置文件配置不同的maven surefire插件来实现一些测试/所有测试功能。
答案 1 :(得分:0)
我们有三个构建目标:
持续集成:无需执行清理即可构建,仅运行Clover标识的测试。这在每次提交后运行。成功后,它将部署到测试服务器。
每晚:干净的构建并运行每一次测试。这每晚都有。成功后,它将部署到测试服务器。
发布:与Nightly plus相同,创建源控件标签。手动运行。
夜间建筑更值得信赖,因为进行了清洁的建造。但是,CI构建更快,意味着在这些情况下反馈更快。
这里存在构建时间的根本问题,但这至少是一种解决方法,而你会看到更永久的方法来解决这个问题。