簡體   English   中英

如何在Sonar中的路徑中排除帶空格的文件?

[英]How to exclude files with spaces in the path in Sonar?

我試圖從Sonars靜態代碼和單元測試覆蓋率分析中排除一些自動生成的代碼(服務引用)。 該項目是C#.Net和Sonar在Windows服務器上通過Jenkins運行。

在我的sonar-project.properties文件中,我可以使用sonar.exclusions屬性排除各種其他文件和目錄,但這不適用於路徑中有空格的文件。

sonar.exclusions=**/Global.asax.cs, **/MyProject/Service References/*

鑒於上面的示例,解決方案中的所有項目都排除了Global.asax.cs文件,但服務引用卻沒有。

我試過用單引號和雙引號括起路徑。 我嘗試使用反斜杠來逃避空間。 我已經嘗試將路徑作為** / MyProject / Service * / *來利用通配符(可能有風險),但這也不起作用。

有人有解決方案嗎?

我剛遇到同樣的問題。 我需要將項目中的javascript文件“我的項目”排除在文件夾腳本中。 我先試了一下:

**/Scripts/**/*.js

這很好,但我意識到它也會排除其他項目中的“Scripts”文件夾。 所以我改成了這個:

**/My Project/Scripts/**/*.js

它停止了工作。 我的第一直覺是項目名稱中的空間應該受到指責。 所以我嘗試了你做過的同樣的事情:

"**/My Project/Scripts/**/*.js"
'**/My Project/Scripts/**/*.js'
**/My\ Project/Scripts/**/*.js

但它都沒有奏效。

然后我偶然發現了這個論壇: sonarqube-archive.15.x6.nabble.com/Project-exclusions-for-Code-Coverage-not-working-C-td5023058.html

特別是這一行提供了答案: 模塊(.Net項目)不是完全限定名稱的一部分。 您必須在模塊(.Net項目)級別定義排除項。

這意味着我的錯誤是項目名稱中沒有空格,但包括項目名稱! 我將過濾器更改為:

Scripts/**/*.js

瞧,這些文件被正確排除在外。 沒有報價或逃避必要。

當然,這仍然會導致另一個項目中的“Scripts”文件夾也被排除在外。 此處提供的信息: docs.sonarqube.org/display/SCAN/Excluding+Artifacts+from+the+Analysis可能對此有用。

我使用的是web界面,而不是直接使用配置文件,但是這也表明如果你有多個過濾器,那么逗號分隔的列表不應該包含空格(除了實際在路徑中的空格),因為它們被解釋得相當從字面上。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM