0

基于Sonar + Clover only running on src-instrumented的问题,建议先使用 mvn clean clover2:setup install clover2:clover,然后:mvn sonar:sonar。

只是想知道为什么我们不能使用 mvn clean clover2:setup install clover2:clover sonar:sonar?

4

2 回答 2

1

sonar:sonar在过去,这是单独运行目标的推荐方式。自从 SonarQube Scanner for Maven 停止尝试运行单元测试 + 通过分叉一个新的 Maven 生命周期为您收集覆盖率后,这种情况就不再存在了。

一般建议现在是在单个命令中运行目标。例如mvn clean package sonar:sonar

在 Clover 的情况下,clover:setup目标将改变 Maven 模型以使所有其他插件(如surefire)使用检测类而不是原始源代码。这确实是一个问题,因为它会阻止 SonarQube 匹配类文件。因此,在您的情况下,您应该坚持两个独立的目标,或者手动配置sonar.sources以引用原始源代码。

于 2016-03-30T11:23:01.670 回答
0

对比了maven日志,找到了可能的原因:

“mvn clean clover2:setup install clover2:clover sonar:sonar” 似乎无法找到源目录。日志显示它使用 ${project}\target\clover\src-instrumented 和 ${project}\target\generated-sources\annotations 作为源目录。

如果显式指定 src/main/java,那么这个单一命令效果很好。唯一棘手的是为什么单独运行目标不需要指定 sonar.sources 但插件仍然可以为源目录找到正确的文件夹。

于 2016-04-01T04:03:29.260 回答