Hudson + Maven + Emma / Sonar =构建周期运行2次

时间:2011-03-16 20:22:01

标签: hudson maven-3 sonarqube

我在哈德森建造了一堆Maven项目,Sonar坐在旁边。 Sonar给了我Sonar统计数据,FindBugs统计数据和代码覆盖率。

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

我该怎样防止这种情况?我做了很多阅读,看起来这是由于代码覆盖插件的设计 - 将未经检测的类与已经检测的类分开。

我尝试了以下配置:

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

2 个答案:

答案 0 :(得分:1)

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

  

mvn clean install -Dtest = false -DfailIfNoTests = false

     mvn声纳:声纳

测试在第一阶段被绕过,并在第二阶段隐含地进行。

一行替代方案是运行以​​下命令: -

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

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

答案 1 :(得分:1)

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

中的重用现有单元测试报告部分

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

clean deploy sonar:sonar