【问题标题】:SonarQube Scanner for MSBuild Scans Files Twice适用于 MSBuild 的 SonarQube 扫描仪两次扫描文件
【发布时间】:2018-05-12 18:06:31
【问题描述】:

我正在使用 Visual Studio Team Services 和 SonarQube 任务“SonarQube Scanner for MSBuild - 开始分析(新)”和“SonarQube Scanner for MSBuild - 结束分析(新)”。

我有一个包含 C# 和 JavaScript 源的项目,我希望对它们都进行分析。我已将源目录设置为“根”(请参阅​​文件夹结构),除了一个小细节外,一切似乎都在工作。扫描器分别扫描带有子目录和子目录的 CSharpSources。这会导致一个文件不能被索引两次的错误。

文件夹结构

Root
  CSharpSources
    Project1
    Project2
  JavaScriptSources

扫描程序会分别扫描我所有的项目目录,但也会扫描 CSharpSources 目录及其子目录,这会导致问题。

有没有办法通过包含/排除源设置来防止这种情况发生,或者建议的方法是什么?

我尝试不设置源目录并且分析有效,但它只分析 C# 文件,而不分析 JavaScript 文件。将源设置为根目录,还包括 JavaScript 文件。如果有更好的方法来包含它们而不会遇到这个索引问题,我很想听听。

我可以从具有此类条目的 SonarQube 任务日志中看到问题:

INFO: -------------  Scan Project1
  ...
INFO: -------------  Scan Project2
  ...
INFO: -------------  Scan CSharpSources
  ...
ERROR: Error during SonarQube Scanner execution
ERROR: File ... can't be indexed twice. Please check that inclusion/exclusion patterns produce disjoint sets for main and test files
ERROR:
ERROR: Re-run SonarQube Scanner using the -X switch to enable full debug logging.

我已经启用了详细日志记录,并且可以在日志中看到一些调试条目。不确定我应该将 -X 开关放在哪里以及是否可以看到更多细节?

【问题讨论】:

  • 您使用哪种扫描仪进行分析?
  • 将 system.debug 设置为 true,然后将构建队列并在 OneDrive 上共享日志(删除个人信息)。
  • @G.Ann-SonarSourceTeam VSTS 任务使用“SonarQube Scanner for MSBuild 3.0.2”

标签: c# sonarqube azure-devops sonarqube-scan


【解决方案1】:

尝试从您的配置文件 (Sonar.Analysis.xml) 中删除“sonar.sources”,因为它会自动从您的 .NET 解决方案中检测到它。这可以防止相同的文件被索引两次。再次在同一个文件中,您可以定义包含和排除。 https://docs.sonarqube.org/display/SONAR/Analysis+Parameters

【讨论】:

    猜你喜欢
    • 2017-04-27
    • 2017-04-27
    • 2018-07-04
    • 2017-08-28
    • 2017-03-24
    • 2018-03-17
    • 2017-10-17
    • 1970-01-01
    • 2018-01-04
    相关资源
    最近更新 更多