gpt4 book ai didi

maven - 使用 maven 时覆盖 Sonar projectKey

转载 作者:行者123 更新时间:2023-12-03 16:17:08 46 4
gpt4 key购买 nike

我想将 25 个模块分组到一个项目键下,这样我就可以获得代码重复的统一 View 。但是 Sonar maven 插件使用 <groupId>:<artifactId>所以每个项目都是独立的。

我试过覆盖 sonar.projectKey但maven插件不考虑它。

有没有一种方法可以将模块组合在一个名称下,以便您可以拥有一个聚合 View ?
或者 sonarqube 服务器中是否还有其他一些东西可以获取该聚合 View ?

最佳答案

据我所知,与某些other forum posts相反,至少具有 v3.2 的 maven-sonar-plugin(可能更早)sonar.projectKey属性受到尊重并覆盖 ${project.groupId}:${project.artifactId} 的默认值.

检查源代码还确认它在默认属性之前首先查找该属性。

org.sonarsource.scanner.maven.bootstrap.MavenSonarRunner.java

private static void defineProjectKey(MavenProject pom, Properties props) {
String key;
if (pom.getModel().getProperties().containsKey(ScanProperties.PROJECT_KEY)) {
key = pom.getModel().getProperties().getProperty(ScanProperties.PROJECT_KEY);
} else {
key = getSonarKey(pom);
}
props.setProperty(MODULE_KEY, key);
}

private static String getSonarKey(MavenProject pom) {
return new StringBuilder().append(pom.getGroupId()).append(":").append(pom.getArtifactId()).toString();
}

org.sonarsource.scanner.api.ScanProperties
String PROJECT_KEY = "sonar.projectKey";

因此,例如,通过在 POM 中设置以下内容,可以覆盖 projectKey:
<properties>
<sonar.projectKey>myprefix:${project.groupId}:${project.artifactId}</sonar.projectKey>
</properties>

在 Maven 3.3.9 上测试。以防这对任何人有帮助!

链接到原始 GitHub 源:
https://github.com/SonarSource/sonar-scanner-maven/blob/master/src/main/java/org/sonarsource/scanner/maven/bootstrap/MavenProjectConverter.java

关于maven - 使用 maven 时覆盖 Sonar projectKey,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23312738/

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