2014-01-24 326 views
50

我想排除Sonar分析的目錄。我在sonar-project.properties文件中定義了以下屬性:SonarQube排除目錄

sonar.sources=src/java 
sonar.exclusions=src/java/test/****/*.java 

的目錄結構我是:

src/java/dig 
src/java/test/dig 

當我運行聲納亞軍,我得到以下信息:

INFO - Excluded sources: 
INFO - src/java/test/**/*.java 
INFO - Excluded tests: 
INFO - **/package-info.java 

但是,當我檢查分析結果時,測試目錄內的所有軟件包仍然存在。

我只需要告訴Sonar不要分析測試目錄及其中的任何軟件包。

+2

我找到了解決方案:sonar.exclusions = test/**/*。java – user1982350

+0

但是如果你想避免測試分析,你可以嘗試使用例如** mvn clean package -DskipTests ** –

回答

1

您使用的是哪種版本的聲納? 有一個選項叫做「sonar.skippedModules = yourmodulename」。

這將跳過整個模塊。所以要注意它。

+8

WARN - 'sonar。 skippedModules屬性自版本4.3開始已棄用,不應再使用。 –

8

最簡單的方法是在啓動服務器(localhost:8080)後轉到服務器URL,然後以管理員身份登錄,轉到設置>排除>源文件排除 - 在此處添加包。 重新啓動服務器。

45

嘗試這樣:

sonar.exclusions=src/java/test/** 
+1

確保爲通配符使用Ant fileglob模式。下面是一個很好的解釋:http://stackoverflow.com/a/86915/748524 – Stephan

+0

這裏是命令行選項定義https://docs.sonarqube。org/display/SONAR/Analysis + Parameters#AnalysisParameters-Exclusions/Inclusions – N0dGrand87

25

我能夠排除使用下面的配置多個目錄(逗號分隔的文件夾路徑)

sonar.exclusions=system/**, test/**, application/third_party/**, application/logs/** 

,當運行聲納亞軍我在下面日誌

Excluded sources: 
    system/** 
    test/** 
    application/third_party/** 
    application/logs/** 
+4

我也收到排除的信息,但文件仍然被分析。在Teamcity參數中使用 – Sebas

+0

我使用了您的提示,但在(-Dsonar.exclu ...)之前插入-D。在這裏工作。 :-) –

0

另一個配置選項是添加一個maven pr operties sonar.exclusions。下面是一個示例pom文件,其中包含靜態jquery目錄和靜態pdf查看器目錄。

<project > 
<modelVersion>4.0.0</modelVersion> 
<artifactId>my Artifact</artifactId> 
<!-- Enviroment variables can be referenced as such: ${env.PATH} --> 
<packaging>war</packaging> 
<url>http://maven.apache.org</url> 

<properties> 

    <junit.version>4.9</junit.version> 
    <mockito.version>1.9.5</mockito.version> 
    <jackson.version>1.9.7</jackson.version> 
    <powermock.version>1.5</powermock.version> 

    <!--Exclude the files Here--> 
    <sonar.exclusions>src/main/webapp/static/jquery_ui/*,src/main/webapp/static/pdf-viewer/*,src/main/webapp/static/pdf-viewer/**,src/main/webapp/static/pdf-viewer/**/*</sonar.exclusions> 
</properties> 

0

如果我們想跳過以下的整個文件夾可用於: sonar.exclusions = FOLDERNAME/**/* 如果我們只有一個特定的文件只是給的完整路徑。

需要排除的所有文件夾並附加在這裏。

試過這個。適合我!