You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SonarQube v6.7.1多模块项目如何在仪表盘展示层级结构?

解决SonarQube 6.7.1展示Maven多模块层级的问题

我之前也碰到过类似的情况,特别是在SonarQube 6.7.x这种稍旧的版本上,给你几个可行的解决方案:

1. 优先排查版本兼容性问题

最新版的Sonar Scanner Maven插件大概率和SonarQube 6.7.1不兼容——SonarQube 6.7.x对应的Maven插件版本应该是2.x系列(比如2.8),而新版插件(3.x及以上)只支持SonarQube 7.9及更高版本。版本不匹配会直接导致子模块无法被正确上报到SonarQube。

你可以在父pom.xml里指定兼容的插件版本:

<build>
  <plugins>
    <plugin>
      <groupId>org.sonarsource.scanner.maven</groupId>
      <artifactId>sonar-maven-plugin</artifactId>
      <version>2.8</version>
    </plugin>
  </plugins>
</build>

2. 确保Maven多模块的Sonar配置正确

在父pom.xml中统一配置Sonar参数,确保子模块能被自动识别:

  • 不需要手动指定sonar.modules(Maven多模块项目下插件会自动扫描子模块),但如果有特殊模块需要排除,可以添加:
<properties>
  <!-- 可选:排除不需要分析的模块 -->
  <sonar.exclusions>module-to-exclude/**/*</sonar.exclusions>
</properties>
  • 确认每个子模块的pom.xml正确继承了父pom,没有覆盖Sonar相关的配置项。

3. 在SonarQube中手动启用模块视图

SonarQube 6.7.x默认不会在仪表盘自动展示子模块层级,需要手动开启:

  1. 进入根项目的仪表盘页面
  2. 点击右上角的Configure Widgets按钮
  3. 在可用小部件列表中找到Modules小部件,添加到仪表盘的合适位置
  4. 保存配置后刷新页面,就能看到子模块的列表,点击子模块名称可进入对应的详情页

另外,你也可以在根项目的Project Settings -> Modules菜单里,确认所有子模块是否已经被正确识别。如果子模块没有出现在这里,说明分析过程中没有上报成功,需要回到前面的步骤排查配置或兼容性问题。

4. 重新执行分析命令

调整配置后,先清理Maven缓存再重新执行分析:

mvn clean install sonar:sonar

内容的提问来源于stack exchange,提问作者d-man

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 04:32:57