2012-12-30 151 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