从 SonarQube 7.6 开始
在最近的版本中删除了模块。我还无法验证以下基于模块的解决方案是否适用于 SonarQube 8.x,但假设必须使用不同的解决方案。当我联系 SonarQube 支持时,他们建议管理项目密钥前缀的权限,并使用前缀范围的项目创建权限来动态创建共享该前缀的项目密钥。
在这种情况下,您pom.xml
将如下所示:
<properties>
<sonar.projectKey>
YourKey-${project.groupId}:${project.artifactId}
</sonar.projectKey>
</properties>
YourKey
项目前缀在哪里。这需要您的 SonarQube 管理员应用建议的权限方案。
预 SonarQube 7.6
7.6 之前的 SonarQube 是/曾经是模块感知的。要在 中定义模块parent.pom
,请声明以下属性:
<properties>
<sonar.projectKey>
YourKey
</sonar.projectKey>
<sonar.moduleKey>
${project.groupId}:${project.artifactId}
</sonar.moduleKey>
</properties>
这两个属性都将由您的模块继承。然后,这会将结果编译为单个 Sonar 报告,跟踪 common 下的子模块projectKey
。有趣的是,结果是:
[INFO] Reactor Summary:
[INFO]
[INFO] parent ................................. SUCCESS [01:14 min]
[INFO] module1................................. SKIPPED
[INFO] module2 ................................ SKIPPED
[INFO] module3 ................................ SKIPPED
因此,我不确定确切的模块解析是如何完成的,但最终所有模块都显示在报告中。