2014-01-23 6 views
5

Ich stoße auf ein Problem, um eine mehrstufige Maven-Module für die Sonar-Analyse zu konfigurieren.Wie werden die Multilevel-Module Sonar und Maven konfiguriert?

Es arbeitet mit der folgenden Struktur fein:

parent module 
    |- level 1 
     |- module with code to analyze 

Aber wenn ich eine Tiefe in das Modul mit Code hinzufügen zu analysieren, ich bin es zu konfigurieren, nicht in der Lage.

parent module 
    |- level 1 
     |- level 2 
      |- module with code to analyze 

Ich habe versucht, mehrere Konfigurationen:

  1. ohne spezielle Konfiguration: Ich erhalte eine Can not execute SonarQube analysis: The project 'level 2' is already defined in SonarQube but not as a module of project 'level 1'. If you really want to stop directly analysing project 'level 2', please first delete it from SonarQube and then relaunch the analysis of project 'level 1'. Fehler. Ich möchte nicht auf Stufe 1 starten, da ich meine Integrationstests auf derselben Ebene direkt im übergeordneten Modul habe.
  2. Verwendung der Eigenschaft skippedModules auf Ebene 1 und Ebene 2: Nur das übergeordnete Modul wird analysiert.
  3. Verwendung von includedModules durch Angabe von "Modul mit zu analysierenden Code": Nur das übergeordnete Modul wird analysiert.

Hat jemand eine Idee, wie man damit umgeht? (Ich meine, ohne die Hierarchieordner zu modifizieren, das für einige andere Anforderungen wirklich hilfreich ist)

Dank durch Voraus

Antwort

0

Ich denke, dass Sie ein Modul in Sonarqube als Projekt haben. Zuerst müssen Sie es entfernen und dann die neue Analyse ausführen. Diese

passieren, wenn ein Projekt bereits existieren, aber in anderen Ebene (Projekt, Modul usw.)

+0

Hallo, bereits versucht, sich das Projekt auf Sonar Entfernen nicht helfen. Dank trotzdem –

+0

können Sie überprüfen, dass der Schlüssel nicht existiert? –

1

fand ich eine Abhilfe: - Ich starte mvn clean on Projekt Eltern installieren - dann ich starten Sonar: Sonar Bei 'Level 2' Modul kann ich es tun, weil die gesamte zu analysierende Codequelle unter demselben Modul ist.

Zumindest funktioniert es auf my sample project, aber zur Zeit habe ich noch nicht behandelt, um es an meinem realen Projekt arbeiten zu lassen.

1

Aufbau meines Maven Multi-Modul-Projekt konsequent für mich arbeitet. Ich verwende SonarQube v4.3.

Ich habe eine Sonar-project.properties-Datei auf der Stammebene des übergeordneten Maven-Projekts platziert.

Hier ist der Inhalt:

# Root project information 
sonar.projectKey=<I used the project pom's groupId + artifactId> 
sonar.projectName=<can be anything> 
sonar.projectVersion=<I used the project pom's version> 

# Some properties that will be inherited by the modules 
sonar.sources=src 

In meiner Eltern pom Projekt, ich diese Eigenschaft erklärt:

<sonar.language>java</sonar.language> 

Innerhalb der gleichen pom, erklärte ich folgendes:

<build> 
    <pluginManagement> 
     <plugins> 
      <plugin> 
       <groupId>org.codehaus.mojo</groupId> 
       <artifactId>sonar-maven-plugin</artifactId> 
       <version>2.2</version> 
      </plugin> 
     </plugins> 
    </pluginManagement> 
</build> 

Ich baue nur das Elternprojekt, was dazu führt, dass der Elternteil und alle seine Kinder analysiert werden b SonarQube. Ich verwende:

mvn clean install sonar:sonar 

oder

mvn sonar:sonar 
Verwandte Themen