我正在使用SonarQube(撰写本文时为6.7)来分析我的C#解决方案。 我现在正在努力将文件从重复或完整分析中排除。
我可以排除以下文件:
else if(isset($_POST['other_msg_subj']) &&
!preg_match ('%^[A-Za-z\.\' \-]{2,30}$%', $_POST['other_msg_subj'])){
或重复如:
<Property Name="sonar.exclusions">**/*.Designer.cs</Property>
据我所知,排除模式是相对于项目的根目录。
现在,如果我有以下设置:
我只想从项目B中排除文件<Property Name="sonar.cpd.exclusions">**/*.g.cs,Tests/UITest*.cs</Property>
,而不是从项目A中排除。
在排除项中添加a.cs
会从两个项目中排除它。
我发现这样做的唯一方法是使用绝对路径,如:
文件:C:/Development/Solution/Src/Project_B/a.cs
这有效,但后来我得到一个警告,即不推荐使用绝对文件路径(通过使用文件:),所以这将被删除,因此不应该使用。
我已经尝试使用相对路径,如:
../ Project_B / a.cs
或
./../ Project_B / a.cs
但这并没有排除任何文件。
是否有任何不推荐的方法只能从一个项目中删除文件?
答案 0 :(得分:0)
答案 1 :(得分:0)
您可以直接在项目文件中使用 SonarQubeExclude MSBuild属性来排除整个项目或单个文件。有关详细信息,请参阅 SonarQube.Integration.Targets 文件中的comments。