2013-09-27 70 views
10

我有一個Java源碼和Scala測試資源的Maven項目。我在verify階段使用Jacoco生成代碼覆蓋率。當我嘗試,或通過運行mvn verify sonar:sonar通過增加執行運行時驗證階段的聲納目標要麼,我結束了測試目錄由聲納添加兩次:Sonar Maven插件:我如何排除測試源目錄?

[INFO] [11:15:34.756] Test directories: 
    [INFO] [11:15:34.756] /Users/xxx/Documents/workspace/misc/xxx/src/test/scala 
    [INFO] [11:15:34.756] /Users/xxx/Documents/workspace/misc/xxx/src/test/scala/../scala 

這會導致分析失敗出現以下錯誤:

Failed to execute goal org.codehaus.mojo:sonar-maven-plugin:2.1:sonar (default-cli) on project kv-mapper: Can not execute SonarQube analysis: Unable to read and import the source file : '/Users/xxxx/Documents/workspace/misc/xxx/src/test/scala/../scala/xxx/xxxxx/xxx/xxx/xxxxx/xxxxxx.java' with the charset : 'UTF-8'. Duplicate source for resource 

我的pom.xml(用於Sonar)看起來像這樣。

<plugin> 
     <groupId>org.codehaus.mojo</groupId> 
     <artifactId>sonar-maven-plugin</artifactId> 
     <version>${sonar.plugin.version}</version> 
     <!-- no default executions --> 
     <configuration> 
      <sonar.core.codeCoveragePlugin>jacoco</sonar.core.codeCoveragePlugin> 
      <sonar.dynamicAnalysis>reuseReports</sonar.dynamicAnalysis> 
      <sonar.language>java</sonar.language> 
      <sonar.jacoco.itReportPath> 
       ${basedir}/target/jacoco.exec 
      </sonar.jacoco.itReportPath> 
      <sonar.exclusions> 
       **/test/* 
      </sonar.exclusions> 
     </configuration> 
    </plugin> 

如何配置聲納要麼:

  • 排除測試/斯卡拉目錄完全? 或
  • 刪除重複的目錄?

回答

3

要麼在運行SonarQube分析之前添加一個步驟來刪除文件夾。 或在測試文件上設置排除。見

+0

這正是我在pom.xml做(見上文)與sonar.exclusions參數。你有樣品可以看嗎? – Siddhu

+1

您必須在測試文件(不是源代碼)上設置排除項:sonar.tests.exclusions屬性 –

14

sonar.test.exclusions應該用來代替sonar.exclusions

<sonar.test.exclusions> 
    **/test/* 
</sonar.test.exclusions> 
+2

謝謝您實際發佈答案,而不是鏈接。 – JamesQMurphy

相關問題