声纳项目集成

Posted

技术标签:

【中文标题】声纳项目集成【英文标题】:Sonar project integration 【发布时间】:2010-11-16 17:02:07 【问题描述】:

大家好,女士们,先生们,

我们有一个相当大的项目,拥有自己的构建框架,主要基于 Java(但也存在其他语言)。

我们想使用 Sonar Hudson 插件以图形方式呈现各种代码指标。 我们如何做到这一点?

我们是否需要更改项目结构并将其引入 maven,或者是否有一种解决方法来指定从何处获取测试结果和其他工件?

谢谢

【问题讨论】:

【参考方案1】:

我们使用的方法是这样的:

我们为声纳构建了一个自定义 pom.xml 构建文件(我们将 ant 用于其他构建目的)

它只需要很好地执行测试,所以用

指定硬编码的依赖引用
<scope>system</scope>

我们没有改变maven的项目结构,你可以在maven自定义scr、test、resources目录中指定(只要你只有一个src和test目录)

CI中使用的命令是

mvn clean compile sonar:sonar

我们将 Continuum 用于 CI 部分,但它在 Hudson 中应该也能正常工作。

这个方法没有改变任何其他的构建项目,它只是为声纳定制的。但它确实为持续集成(每日)构建或使用 maven 作为构建工具开辟了道路。这个方法类似于here描述的“声纳光模式”

更多信息在这里:

http://docs.sonarqube.org/display/SONAR/Documentation http://docs.codehaus.org/display/SONAR/Continuous+Integration

【讨论】:

【参考方案2】:

您可以在没有 Maven 的情况下使用声纳。你只需要告诉它 rport 文件的属性:sonar.cobertura.reportPath, sonar.clover.reportPath, sonar.surefire.reportsPath...

请看这里:http://sonar.codehaus.org/tag/ant/

在 hudson 中配置构建时有一个复选框来设置这些值 - 它被称为“检查这个项目是否不是用 maven2 构建的”

【讨论】:

以上是关于声纳项目集成的主要内容,如果未能解决你的问题,请参考以下文章

为单元和集成测试生成声纳覆盖率报告

如何关闭声纳分析仪但仍然获得覆盖率报告?

在 Sonarqube 仪表板的名称列表中复制声纳项目名称

声纳 Maven 集成

詹金斯/声纳集成

使用 Ant 将 JaCoCo 集成到声纳中