我试图想出一个持续集成模式,其中我们的Maven项目只会在满足某些质量阈值时部署工件。我们使用声纳来运行质量报告,但似乎我已经运行:Sonar和Maven工件部署
mvn clean install sonar:sonar && \
mvn deploy -DskipTests -DskipITs
(或等值,而不是作为单独的詹金斯生成步骤)。
这涉及到构建代码两次,因此每个整体构建作业都需要太长时间才能实现持续集成。
如果我运行一个班轮,如:
mvn clean deploy sonar:sonar
运行声纳之前的文物被部署到存储库。没有远离Maven,是否有更好的解决方案?
我想你必须在运行Sonar之前运行安装阶段,不是吗?官方文件说明了这一点。之后运行部署的问题是它再次运行* all *阶段,而不仅仅是编译。例如,我们有从wsdls生成代码的模块,并且这需要非零的时间量,足以不要重复它。我已经在上面发布了我的最终解决方案,这可以避免这种情况。 – RCross
是的,它不是干净的任何方式你把它。我们再次运行整个生命周期,但我们会抛出各种“-Dskip *”属性。 –