21 Stimmen

Wie konfiguriere ich Maven, um eine SonarQube-Projektanalyse mit zwei verschiedenen Qualitätsprofilen durchzuführen?

Wir führen SonarQube-Analysen für unsere Java-Projekte über Maven durch. Maven macht das irgendwie automagisch; alles, was wir getan haben, war das sonar-maven-plugin zu unserem pom.xml hinzuzufügen:

        ...

            org.codehaus.mojo
            sonar-maven-plugin
            2.2

Dies funktioniert gut.

Jetzt müssen wir die SonarQube-Analyse jedoch zweimal mit unterschiedlichen Qualitätsprofilen durchführen. Da man den Projekt-Key nicht einfach über Maven ändern kann, verwenden wir die branch Eigenschaft von SonarQube, um die SonarQube-Projekte zu unterscheiden, wie folgt (wieder aus pom.xml):

    MyQualityProfile1
    Dev_${sonar.profile}
    ...

Auf diese Weise haben wir zwei Projekteinträge in der SonarQube-Benutzeroberfläche, die beide den exakt gleichen Code enthalten, aber je nach ihrem Qualitätsprofil unterschiedliche Probleme haben (eines verwendet Qualitätsprofil 1 und das andere verwendet Qualitätsprofil 2).

Problem: Um dies zu erreichen, muss ich manuell die Eigenschaften der pom.xml ändern und den gesamten Build zweimal ausführen.

Frage: Wie kann ich Maven konfigurieren, um einfach das sonar:sonar Ziel zweimal mit unterschiedlichen Eigenschaften auszuführen?

Dies würde uns viel Zeit bei unseren Builds sparen. Ich habe bereits diese ähnliche Frage gefunden, aber bisher keine Antworten. Danke!

18voto

John Q Citizen Punkte 2978

Erweiterung der vorherigen Antwort von Eldad AK bezüglich Profile:

Erstellen Sie zwei Maven-Profile wie folgt:

  Dev_${sonar.profile}

    QualityProfileOne

      MyQualityProfile1

    QualityProfileTwo

      MyQualityProfile2

Führen Sie dann folgendes aus:

    $ mvn clean install -DskipTests
    $ mvn sonar:sonar -PQualityProfileOne
    $ mvn sonar:sonar -PQualityProfileTwo

(möglicherweise müssen Sie ein clean zwischen dem Ausführen von Sonar durchführen, bin mir nicht sicher)

3voto

Horst Krause Punkte 576

Versuchen Sie, zwei Ausführungen Ihres Plugins zu konfigurieren. Etwas Ähnliches wie folgt:

    org.codehaus.mojo
    sonar-maven-plugin

            s1
            verify

                sonar

                MyQualityProfile1

            s2
            install

                sonar

                MyQualityProfile2

Dies startet zwei Ausführungen von Sonar in den Phasen verify und install, jeweils mit einem anderen Wert für sonar.branch. In Sonar können Sie dann die erforderlichen Qualitätsprofile nach der ersten Analyse konfigurieren.

1voto

mg_ Punkte 66

Eine Kombination aus Maven und Ant könnte funktionieren: Verwenden Sie Maven für die erste Sonar-Analyse, wie Sie es bereits tun, und verwenden Sie das Maven Antrun Plugin, um eine weitere SonarQube-Konfiguration auszuführen, die mithilfe der SonarQube Ant Task definiert ist.

0voto

Eldad Assis Punkte 9834

Ich würde mich für die Maven-Profile entscheiden.
Jedes Profil hätte seine eigenen Eigenschaften.

Ich hoffe, das hilft.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X