2017-08-17 3 views
1

j'ai un projet Maven multi-module pour lequel sonarqube v 5.6.6 avec le dernier JaCoCo utilisé.sonarqube + JaCoCo + TeamCity mal les noms des modules

La configuration est la suivante:

<properties> 
    <sonar-maven-plugin.version>3.3.0.603</sonar-maven-plugin.version> 
    <jacoco-maven-plugin.version>0.7.9</jacoco-maven-plugin.version> 
    <sonar-jacoco-listeners.version>4.10.0.10260</sonar-jacoco-listeners.version> 
    <maven-surefire-plugin.version>2.20</maven-surefire-plugin.version> 
    <sonar.java.binaries>${basedir}</sonar.java.binaries> 
    <!--sonar properties--> 
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
    <sonar.projectName>GR</sonar.projectName> 
    <!-- Use the following property to force single language analysis, omit it to perform Multilanguage analysis --> 
    <sonar.language>java</sonar.language> 

    <sonar.java.coveragePlugin>jacoco</sonar.java.coveragePlugin> 

    <jacoco.outputDir>${project.build.directory}</jacoco.outputDir> 
    <!-- Jacoco output file for UTs --> 
    <jacoco.out.ut.file>jacoco-ut.exec</jacoco.out.ut.file> 
    <!-- Tells Sonar where the Jacoco coverage result file is located for Unit Tests --> 
    <sonar.jacoco.reportPath>${jacoco.outputDir}/${jacoco.out.ut.file}</sonar.jacoco.reportPath> 
    <!--sonar properties--> 

</properties> 

<profiles> 
    <profile> 
     <id>sonar</id> 
     <build> 
      <plugins> 
       <plugin> 
        <groupId>org.apache.maven.plugins</groupId> 
        <artifactId>maven-surefire-plugin</artifactId> 
        <version>${maven-surefire-plugin.version}</version> 
        <configuration> 
         <argLine>${jacoco.agent.ut.arg}</argLine> 
         <properties> 
          <property> 
           <name>listener</name> 
          <value>org.sonar.java.jacoco.JUnitListener</value> 
          </property> 
         </properties> 
         <testFailureIgnore>true</testFailureIgnore> 
        </configuration> 
       </plugin> 
       <plugin> 
        <groupId>org.jacoco</groupId> 
        <artifactId>jacoco-maven-plugin</artifactId> 
        <version>${jacoco-maven-plugin.version}</version> 
        <executions> 
         <execution> 
          <id>prepare-ut-agent</id> 
          <phase>process-test-classes</phase> 
          <goals> 
           <goal>prepare-agent</goal> 
          </goals> 
          <configuration> 
           <destFile>${sonar.jacoco.reportPath}</destFile> 
           <propertyName>jacoco.agent.ut.arg</propertyName> 
           <append>true</append> 
          </configuration> 
         </execution> 
        </executions> 
       </plugin> 
      </plugins> 
     </build> 
     <dependencies> 
      <dependency> 
       <groupId>org.sonarsource.java</groupId> 
       <artifactId>sonar-jacoco-listeners</artifactId> 
       <version>${sonar-jacoco-listeners.version}</version> 
       <scope>test</scope> 
      </dependency> 
     </dependencies> 
     <activation> 
      <activeByDefault>true</activeByDefault> 
     </activation> 
    </profile> 
</profiles> 

Le problème est lorsque le projet est construit par TeamCity et les résultats sont transmis à sonarqube les résultats de couverture dans les mesures -> Mesures de couverture -> Arbre sont comme dans le image, par exemple tous les noms de modules sont les mêmes: Nom du projet + nom de la branche. Mais je veux qu'ils aient des noms de modules.

Y at-il quelque chose de mal avec la configuration? Merci!

De plus, si j'utilise la configuration la plus simple à partir officielle github il n'y a pas d'analyse de couverture de code du tout.

Sonar Tree view

Répondre

1

Je crois que cela n'a rien à voir avec la couverture de code et vous forçant simplement tous les modules sonarqube d'avoir le même nom en définissant la propriété sonar.projectName dans pom.xml parent. Il suffit donc de l'enlever ou de vous assurer qu'il spécifie des noms différents pour différents modules.

+0

Oui, aussi simple que cela puisse paraître. J'ai juste enlevé 'sonar.projectName' du parent' pom.xml' et maintenant il est affiché correctement. Pas sûr, comment implémenter _specifies différents noms pour différents modules_ tho. – Enigo