Hudson + Maven + Emma / Sonar =构建循环运行2次

我有一堆在Hudson建造的Maven项目,其中Sonar坐在旁边。 Sonar为我提供Sonar统计数据,FindBugs统计数据和代码覆盖率。

我注意到,无论使用Sonar还是直接通过Maven使用EMMA, 整个构建周期都会运行两次。 这包括init(在我的情况下,重新初始化数据库 - 昂贵)和单元测试(几百个 - 也很昂贵)。

我怎样才能防止这一点? 我做了大量的阅读,看起来这是由于代码覆盖插件的设计 - 使未分离的类与工具类分离。

我尝试过如下配置:

  • Maven运行:部署,EMMA
  • Maven运行:部署; 完成后部署到Sonar

  • 声纳文档建议分两个阶段运行声纳插件: -

    mvn clean install -Dtest = false -DfailIfNoTests = false

    mvn声纳:声纳

    测试在第一阶段绕过并在第二阶段隐式运行。

    一种替代方法是运行以下命令: -

    mvn clean install sonar:sonar -Dmaven.test.failure.ignore=true
    

    但是这将会运行两次测试 - 就像你发现的那样。


    要添加到@ Strawberry的答案,您可以重新使用单元测试报告,而不是再次运行它们。 请参阅声纳文档中重新使用现有单元测试报告一节

    一旦完成,您可以在Hudson中配置以下内容

    clean deploy sonar:sonar
    
    链接地址: http://www.djcxy.com/p/50731.html

    上一篇: Hudson + Maven + Emma/Sonar = Build Cycle Runs 2x

    下一篇: Separate Building from Deployment with Hudson