【问题标题】:Hudson + Maven + Emma/Sonar = Build Cycle Runs 2xHudson + Maven + Emma/Sonar = 构建周期运行 2 次
【发布时间】:2011-07-16 22:05:41
【问题描述】:

我有一堆 Maven 项目在 Hudson 建设,Sonar 坐在旁边。 Sonar 为我提供 Sonar 统计信息、FindBugs 统计信息和代码覆盖率。

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

如何防止这种情况发生?我做了很多阅读,这似乎是由于代码覆盖插件的设计——将未检测的类与检测的类分开。

我尝试过如下配置:

  • Maven 运行:部署、EMMA
  • Maven 运行:部署;完成后部署到声纳

【问题讨论】:

    标签: hudson maven-3 sonarqube


    【解决方案1】:

    声纳documentation建议分2个阶段运行声纳插件:-

    mvn clean install -Dtest=false -DfailIfNoTests=false

    mvn 声纳:声纳

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

    另一种选择是运行以下命令:-

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

    但这将运行两次测试 - 正如您所发现的那样。

    【讨论】:

    • 我没有手动运行 mvn;我是通过哈德逊来做的。这如何转化为这个解决方案?
    【解决方案2】:

    要添加到@Strawberry 的答案,您可以重复使用单元测试报告,而不是再次运行它们。请参阅sonar documentation中的重用现有单元测试报告部分

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

    clean deploy sonar:sonar
    

    【讨论】:

      猜你喜欢
      • 2011-08-05
      • 1970-01-01
      • 2011-05-30
      • 1970-01-01
      • 1970-01-01
      • 2016-02-21
      • 1970-01-01
      • 2011-01-02
      • 1970-01-01
      相关资源
      最近更新 更多