簡體   English   中英

使用帶有MSBuild Runner的C#插件的SonarQube不會進行排除

[英]SonarQube with C# plugin with MSBuild Runner does not take exclusions

目前我有一個帶有C#插件和MSBuild運行器的SonarQube 5.1.2實例,以便分析1.200.000 LOC項目。 我打算減少分析的類,我用該行創建了一個sonar.properties文件

sonar.exclusions=**/Databases/**/*.*

但是從分析中讀取日志后,分析了Databases文件夾中的文件。 按照Eric Starr的說明,我在跑步者的召喚中設置了這個簡單的排除規則:

"C:\sonarqube-5.1.2\bin\MSBuild.SonarQube.Runner.exe" begin /k:MyProject /n:MyProject /v:2 /d:sonar.exclusions="file:C:\codesource\Databases/**/*.*" /d:sonar.scm.provider=tfvc /d:sonar.tfvc.username=*************  /d:sonar.tfvc.password.secured={aes}*************************** "/d:sonar.cs.vscoveragexml.reportsPaths=C:\codesource\CodeCoverage\Results.coveragexml"

我發現跑步者創建了一個sonar-project.properties文件,它包含了很多位於數據庫文件夾中的文件:

BC78C8C4-8ECD-47CB-9781-F621AE109FE4.sonar.projectName=myDatabase
BC78C8C4-8ECD-47CB-9781-F621AE109FE4.sonar.projectBaseDir=BC78C8C4-8ECD-47CB-9781-F621AE109FE4.sonar.projectName=myDatabase
BC78C8C4-8ECD-47CB-9781-F621AE109FE4.sonar.projectBaseDir=C:\\codesource\\Databases\\myDatabase
BC78C8C4-8ECD-47CB-9781-F621AE109FE4.sonar.sources=\
C:\\codesource\\Databases\\myDatabase\\Scripts\\PreDeployment\\PATCH_20150527_01.sql,\
C:\\codesource\\Databases\\myDatabase\\Scripts\\PreDeployment\\ROCOMMON.DBVERSION.sql,\
,\.....

據我所知,數據庫文件夾中應該沒有文件。 我錯了嗎?

您正在使用SonarQube掃描儀進行MSBuild ,這與用於所有其他語言的常規SonarQube掃描儀非常不同。

您嘗試使用的sonar.exclude行只有在您使用常規SonarQube掃描程序時才有效,因為它接收Sonar-project.properties文件。 用於MSBuild的SonarQube掃描儀只有一個SonarQube.Analysis.Xml文件,其中包含可以調整的項目相關設置。

您可以為SonarQube.Analysis.Xml文件使用幾個覆蓋策略:

  • 在MSBuild *。* proj文件中定義的項目特定屬性(對應於SonarQube模塊)可以覆蓋:
  • 命令行中定義的屬性(/ d:propertyName = value)可以覆蓋:
  • SonarQube.Analysis.xml配置文件中定義的屬性
  • 在項目級別的SonarQube用戶界面中定義的屬性可以覆蓋所有內容
  • SonarQube用戶界面在全局級別定義的屬性,不能覆蓋任何內容

要從解決方案中排除特定文件夾或擴展程序:

您需要將排除添加到每個項目的.csproj文件中。 這是您應該在主根節點中使用的語法,稱為<Project...>並進入其中一個目標,最好是<Target Name="BeforeBuild"> 希望下面的語法足夠自我解釋,但如果不是,請在此答案下留言,我會馬上更新。

<Target Name="BeforeBuild">
    <ItemGroup>
          <SonarQubeSetting Include="sonar.exclusions">
              <Value>**/Databases/**/*</Value>
          </SonarQubeSetting>
      </ItemGroup>
  </Target>

希望能幫助到你!

資源

暫無
暫無

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

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