Java >> Java Tutorial >  >> Tag >> maven

Sonar-Maven-Plugin:Gleicher Projektschlüssel für alle Module funktioniert nicht?

Seit SonarQube 7.6

Module wurden in einer neueren Version entfernt. Ich konnte noch nicht validieren, ob die untenstehende, modulbasierte Lösung auf SonarQube 8.x funktioniert, gehe aber davon aus, dass eine andere Lösung verwendet werden muss. Als ich den SonarQube-Support kontaktierte, schlugen sie vor, Berechtigungen für Projektschlüsselpräfixe zu verwalten und präfixbezogene Projekterstellungsberechtigungen zu verwenden, um dynamisch Projektschlüssel zu erstellen, die dieses Präfix teilen .

In diesem Fall Ihr pom.xml würde so aussehen:

<properties>
    <sonar.projectKey>
        YourKey-${project.groupId}:${project.artifactId}
    </sonar.projectKey>
</properties>

wobei YourKey ist das Projekt-Präfix. Dazu muss Ihr SonarQube-Administrator das vorgeschlagene Berechtigungsschema anwenden.

Vor SonarQube 7.6

SonarQube vor 7.6 ist/war modulfähig. So definieren Sie Module in Ihrem parent.pom deklarieren Sie die folgenden Eigenschaften:

<properties>
    <sonar.projectKey>
        YourKey
    </sonar.projectKey>
    <sonar.moduleKey>
        ${project.groupId}:${project.artifactId}
    </sonar.moduleKey>
</properties>

Beide Eigenschaften werden von Ihren Modulen geerbt. Dadurch wird das Ergebnis dann in einen einzigen Sonar-Bericht kompiliert, der die Untermodule unter dem gemeinsamen projectKey verfolgt .Interessanterweise ist das Ergebnis:

[INFO] Reactor Summary:
[INFO] 
[INFO] parent ................................. SUCCESS [01:14 min]
[INFO] module1................................. SKIPPED
[INFO] module2 ................................ SKIPPED
[INFO] module3 ................................ SKIPPED

Ich bin mir daher nicht sicher, wie die genaue Modulauflösung durchgeführt wurde, aber am Ende tauchten alle Module im Bericht auf.


Gemäß den SonarQube-Analyseparametern:

sonar.projectKey

Der Projektschlüssel, der für jedes Projekt eindeutig ist. Erlaubte Zeichen sind:Buchstaben, Zahlen, '-', '_', '.' und ':', mit mindestens einer Nichtziffer.
Wenn Sie Maven verwenden, wird es automatisch auf <groupId>:<artifactId> gesetzt .

Entfernen Sie daher Ihren sonar.projectKey Konfiguration und es sollte funktionieren.

(Ich habe die gleiche Schleife durchlaufen).


Java-Tag