2012-12-30 5 views
6

J'utilise Maven 3 et dans mon projet java, le fichier pom contient un emplacement source comme suit.Comment définir plusieurs emplacements source dans le serveur Sonar?

<build> 
     <sourceDirectory>src/main/java</sourceDirectory> 
     <testSourceDirectory>src/test/java</testSourceDirectory> 
     <plugins> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-compiler-plugin</artifactId> 
       <configuration> 
        <source>${JDK}</source> 
        <target>${JDK}</target> 
        <excludes> 
         <!--<exclude>**/**/api/notification/**/INotificationProfileManager.java</exclude> --> 
        </excludes> 
       </configuration> 
      </plugin> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-ejb-plugin</artifactId> 
       <configuration> 
        <version>1.3</version> 
        <archive> 
         <manifest> 
          <addDefaultSpecificationEntries>true</addDefaultSpecificationEntries> 
          <addDefaultImplementationEntries>true</addDefaultImplementationEntries> 
         </manifest> 
         <manifestEntries> 
          <Class-Path>./MubarsherTradeClasspath-1.0.jar</Class-Path> 
          <Specification-Vendor>Mubasher</Specification-Vendor> 
          <Implementation-Vendor>Mubasher</Implementation-Vendor> 
          <Sealed>false</Sealed> 
         </manifestEntries> 
        </archive> 
       </configuration> 
      </plugin> 

Après la compilation, les fichiers générés sont situés dans le chemin .../generate/src/main/java/.... Lorsque analyse Sonar est faite, il vérifie ces classes générées qui ont elles-mêmes un chemin ../src/main/java/..., donc l'analyse échoue.

J'ai donc besoin de savoir comment définir plusieurs chemins sources à analyser à partir du sonar?

+0

Pourriez-vous donner également la trace de la pile d'erreur Sonar? –

Répondre

8

vous pouvez utiliser sonar-runner pour ce faire. C'est plus utile.

Vous pouvez déclarer deux modules. Un par répertoire source. Ensuite, vous devez configurer l'exécution en déclarant un fichier de propriétés.

Ce fichier devrait ressembler à ceci

sonar.projectKey=myproject 
sonar.projectName=myprojectname 
sonar.projectVersion=version 
sonar.sourceEncoding=UTF-8 


sonar.modules=normalsource-module, generated-module 


normalsource-module.sonar.projectName=Normal Sources Module 
normalsource-module.sonar.language=java 
normalsource-module.sonar.sources=src/main/java 
normalsource-module.sonar.binaries=target/classes 
normalsource-module.sonar.projectBaseDir=. 


generated-module.sonar.projectName=Generated Sources Module (Java) 
generated-module.sonar.language=java 
generated-module.sonar.sources=src/main/java 
generated-module.sonar.binaries=target/classes 
generated-module.sonar.projectBaseDir=. 

Hope this helps,

Cordialement

+1

Ce n'est pas un bon moyen si vous essayez d'analyser un projet avec plus de 50 modules. Existe-t-il une approche générique pour ajouter des dossiers source dans un projet multi-module maven? Je voudrais continuer à utiliser le scanner maven au lieu du scanner sonar. – MKorsch

+0

Une amélioration à ce sujet? J'ai le même problème – paul

Questions connexes