2012-12-30 50 views
6

我正在使用Maven 3並在我的Java項目中,pom文件包含一個源位置,如下所示。如何在Sonar Server中設置多個源位置?

<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> 

編譯後,生成的文件位於.../generate/src/main/java/...路徑。當聲納分析完成後,它會檢查這些生成的類,它們本身具有../src/main/java/...路徑,因此分析失敗。

所以我需要知道如何定義多個源路徑來分析聲納?

+0

是否也能提供聲納錯誤堆棧跟蹤? –

回答

8

你可以使用sonar-runner來做到這一點。這更有用。

您可以聲明兩個模塊。一個由源代碼目錄。然後你必須通過聲明屬性文件來配置執行。

這個文件應該是這樣的

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=. 

希望這有助於

問候

+1

如果您嘗試使用50多個模塊分析項目,這不是一個好方法。是否有任何通用的方法來添加Maven多模塊項目中的源文件夾?我想繼續使用maven-scanner而不是聲納掃描儀。 – MKorsch

+0

對此有何改進?我有同樣的問題 – paul