[英]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.