【发布时间】: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