Ich habe viele (sagen wir 10 (A, B, C ...)) Eclipse-Plugin, das auf Maven basiert.
Ich habe eine Master-Pom-Datei, die alle anderen Plugin-Projekte enthält. Durch das Erstellen der Master-Datei mit sonar:sonar
goal werden alle Plugins erstellt.
Also meine Frage: Gibt es eine Möglichkeit, ein Plugin auszuschließen, sagen wir A und C.?
NOTE: Diese Eigenschaft ist seit Version 4.3 veraltet und sollte nicht mehr verwendet werden.
Aus der Dokumentation besteht die Möglichkeit, das Modul mit sonar.skippedModules
zu überspringen.
Sie können dies auch von der Sonar-Verwaltungsseite aus tun, wie im Abschnitt "Überspringmodule" hier dokumentiert.
Es gibt mehrere Möglichkeiten, eine davon besteht darin, die sonar.skip
-Eigenschaft innerhalb des pom.xml
des Projekts/Moduls hinzuzufügen, das Sie überspringen möchten.
Dies schließt ein Projekt aus der SonarQube-Analyse aus:
<properties>
<sonar.skip>true</sonar.skip>
</properties>
Dies funktioniert auch mit Jenkins und dem Ausführen von Sonar als Post-Build-Aktion.
Weitere Informationen finden Sie unter: Analysieren mit SonarQube-Scanner für Maven
Ich hatte kein Glück mit dem offiziell dokumentierten sonar.skip
: Als ich ihn in ein POM-Modul einbaute, sah ich
[INFO] Delaying SonarQube Scanner to the end of multi-module project
nach Modulen, die aufgenommen werden sollen und dann
[INFO] sonar.skip = true: Skipping analysis
am Ende des Reaktoraufbaus, und es gab keine Analyse/Upload.
Stattdessen definierte ich sonar.exclusions
im Root-POM mit einem pattern , das mit den Quelldateien übereinstimmt (nach Paketpfad), die in dem zu überspringenden Submodul verwendet werden. Das scheint funktioniert zu haben.
Nebenbei, die Einstellung von sonar.projectKey
im Root-POM funktionierte nicht. Sonar beklagte sich darüber
Project '…' can't have 2 modules with the following key: …
was ich durch Verschieben nach .mvn/maven.config
behoben habe:
-Dsonar.projectKey=…