我已经搜索了几个与多模块maven项目和声纳相关的问题,但这些问题主要是关于聚合代码覆盖率度量的。
我有一个多模块的maven项目正在由声纳进行分析。如果我使用mvn sonar:sonar直接从终端运行分析,则结果分析将显示设计页面中maven模块之间的依赖关系。
但是,如果我通过Jenkins调用声纳运行程序来运行分析,则结果分析将忽略maven模块之间的依赖关系。
下面是我设置声纳参数的顶级pom的片段:
<profile>
<id>sonar</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<sonar.jdbc.url>
jdbc:mysql://myhost:3306/sonar?useUnicode=true&characterEncoding=utf8
</sonar.jdbc.url>
<sonar.jdbc.username>sonar</sonar.jdbc.username>
<sonar.jdbc.password>sonar</sonar.jdbc.password>
<sonar.host.url>http://myhost:9999</sonar.host.url>
<sonar.java.source>1.7</sonar.java.source>
<sonar.login>jenkins</sonar.login>
<sonar.password>jenkins</sonar.password>
</properties>
</profile> 在Jenkins上,我将工作配置为在构建步骤中执行clean install -DskipTests=true,然后是运行Sonar的构建后操作。
我使用的是Maven版本3.0.5、SonarQube版本3.7、SonarRunner2.3和1.7.0_45。
知道我在配置中可能遗漏了什么吗?
发布于 2013-12-16 21:39:33
实际上,SonarQube Maven引导程序依赖于Maven来获取依赖项(无论是模块还是外部库)。但是SonarRunner无法访问这类信息,这就是为什么当您使用SonarRunner分析一个项目时,您无法获得任何有关外部依赖关系的信息。
发布于 2013-12-14 06:57:57
如果您正在使用Jenkins,则需要安装Sonar插件并设置参数。然后,您需要创建一个作业并运行maven目标:
clean install之后,马克·索纳尔·查克博克。运行您的工作,您将看到您的代码覆盖率。
PS:如果你使用的模块,你必须有pom-根与您的所有模块。
https://stackoverflow.com/questions/20569873
复制相似问题