2016-03-07 32 views
2

我想禁用C#規則「刪除此類型並編輯接口以添加缺少的功能」(csharpsquid:S3215)。一般情況下,但對於文件夾「something \ Business \ Genome \ *。cs」中的所有文件) (「something」可以是一個或多個目錄)忽略多個標準不起作用的問題

我試圖使用選項「忽略問題這個SonarQube項目的「多重標準」,但我無法弄清楚正確的設置(或者這個功能根本無法工作?)。

組合我試過到目前爲止:

 
Rule Key Pattern    File Path Pattern 
csharpsquid:S3215    **/Business/Genome/*.cs 
csharpsquid:S3215    **\Business\Genome\*.cs 
csharpsquid:S3215    **//Business//Genome//*.cs 
*:S3215      **/Business/Genome/*.cs 
*:S3215      **\Business\Genome\*.cs 
*:S3215      **//Business//Genome//*.cs 

我甚至不知道這是否是規則鍵模式或者是不匹配......文件路徑模式: -/

更新08.03.16: 昨晚我跑了一些額外的測試。我沒有在全球範圍配置這個項目,我用

 
Rule Key Pattern    File Path Pattern 
csharpsquid:S3215    **/?usiness/?enome/*.cs 

排除套管問題:沒有成功。

然後我用剛剛

 
Rule Key Pattern    File Path Pattern 
csharpsquid:S3215    **/*.cs 

,看它是否在所有工作,並做到了。 所以不知怎的,我的路徑一定是錯的,但我不知道如何。

更新16年3月8日(2):下面是從日誌生成服務器的一行:

 
08:57:50.854 INFO - 0/658 files analyzed, starting to analyze: C:\Program Files (x86)\Jenkins\workspace\Tools .Net (Nightly)\Tools\Business\Genome\Absence.cs 

我敢肯定這不是一個外殼的問題。但我有另一個懷疑。我掃描整個解決方案,顯然SonarQube將該解決方案中的每個項目都視爲一個組件,並分別掃描每個組件/項目。掃描路徑是否可能與項目有關?因爲我也看到這個在日誌中:

 
08:57:43.701 INFO - Loading plugin stylecopanalyzers 
08:57:43.924 INFO - Base dir: C:\Program Files (x86)\Jenkins\workspace\Tools .Net (Nightly)\Tools\Business\Genome 
08:57:43.924 INFO - Working dir: C:\Program Files (x86)\Jenkins\workspace\Tools .Net (Nightly)\.sonarqube\out\.sonar... 
08:57:44.103 INFO - Source paths: Absence.cs, ... 
+1

嗨安德烈亞斯,這個功能工作正常(至少在SQ的最新版本 - 你使用哪個版本?)。我看到你在.NET商店,可能是路徑區分大小寫的問題?另外,我假設你已經在MS SQL DB上安裝了SQ,對吧?如果是這樣,那麼由於表格的一些錯誤排序,這可能會變得更糟(有關MS SQL的要求,請參閱http://docs.sonarqube.org/display/SONAR/Requirements)。 –

+0

嗨Fabrice。文件夾名稱的框是正確的,我們使用的是Oracle數據庫,而不是MS SQL。我們使用的是SonarQube 5.3。 –

+0

好吧,所以我們必須錯過一些特別的東西......「csharpsquid:S3215」以及「**/Business/Genome/* .cs」是正確的語法,它應該可以工作。但我沒有想法。 :-( –

回答

1

文件包含/排除是基於相對於每個SonarQube模塊路徑(即Visual Studio項目)。所以如果「商業」是一個VS項目,這確實不行。

+0

那麼就沒有辦法只爲這個模塊忽略這個規則呢? –

+0

這確實是一個限制。如果此模塊的文件位於可用作判別式的文件夾中,則可以解決此問題。但我想這不是這種情況。 –