gpt4 book ai didi

java - Sonar 缺少 Maven 模块之间的依赖关系

转载 作者:太空宇宙 更新时间:2023-11-04 07:11:36 24 4
gpt4 key购买 nike

我搜索了与多模块 Maven 项目和 Sonar 相关的几个问题,但这些问题主要是关于聚合代码覆盖率指标。

我有一个多模块 Maven 项目正在通过 Sonar 进行分析。如果我使用 mvn sonar:sonar 直接从终端运行分析,生成的分析将在设计页面中显示 Maven 模块之间的依赖关系。

但是,如果我通过 Jenkins 调用 sonar-runner 来运行分析,则结果分析将错过 Maven 模块之间的依赖关系。

这是我设置 Sonar 参数的顶级 pom 的片段:

<profile>
<id>sonar</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<sonar.jdbc.url>
jdbc:mysql://myhost:3306/sonar?useUnicode=true&amp;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、Sonar Runner 2.3 和 Java 1.7.0_45。

知道我的配置中可能缺少什么吗?

最佳答案

事实上,SonarQube Maven Bootstrap 依赖 Maven 来获取依赖项(无论是在模块上还是在外部库上)。但 SonarRunner 无法访问此类信息,这就是为什么当您使用 SonarRunner 分析项目时,您无法获得有关外部依赖项的任何信息。

关于java - Sonar 缺少 Maven 模块之间的依赖关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20569873/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com