我使用Visual Studio Team Services和SonarQube任务' SonarQube扫描仪用于MSBuild - 开始分析(新)'和MSARild的SonarQube扫描仪 - 结束分析(新)'。
我有一个带有C#和JavaScript -sources的项目,我希望它们都经过分析。我将sources目录设置为' Root' (参见文件夹结构)除了一个小细节外,一切似乎都在工作。扫描程序分别使用子目录和子目录扫描CSharpSources。这会导致文件无法索引两次的错误。
文件夹结构
Root
CSharpSources
Project1
Project2
JavaScriptSources
扫描程序分别扫描我的所有项目目录,但随后也扫描带有子目录的CSharpSources目录,这会导致问题。
有没有办法可以通过包含/排除来源设置或建议的方式来阻止这种情况?
我尝试过不设置sources目录和分析工作,但它只分析C#文件,而不是JavaScript文件。将源设置为Root目录,还包括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开关放在哪里,如果我能看到更多细节呢?
答案 0 :(得分:0)
尝试从配置文件(Sonar.Analysis.xml)中删除“sonar.sources”,因为它会自动从.NET解决方案中检测到它。这可以防止相同的文件索引两次。再次在同一个文件中,您可以定义包含和排除。 https://docs.sonarqube.org/display/SONAR/Analysis+Parameters