如何解决运行代码分析任务TFS中文件无法被索引两次错误?

Posted

技术标签:

【中文标题】如何解决运行代码分析任务TFS中文件无法被索引两次错误?【英文标题】:How to solve File can’t be indexed twice error in Run Code Analysis task TFS? 【发布时间】:2019-12-07 21:07:27 【问题描述】:

我正在使用 SonarQube 7.4 版和 TFS 构建任务运行代码分析 4 版

我收到一个错误文件无法被索引两次。请检查包含/排除模式是否会为主文件和测试文件生成不相交的集合

以下是我在 SonarQube 任务步骤上准备分析的配置

sonar.verbose=true
sonar.sources=(Build.SourcesDirectory)
sonar.inclusions=Code/**
sonar.cs.vstest.reportsPaths=**/*.trx
sonar.cs.vscoveragexml.reportsPaths=**/*.coveragexml
sonar.cfamily.build-wrapper-output=(Build.SourcesDirectory)
sonar.cfamily.threads=6
sonar.cfamily.cppunit.reportsPath=**/result.xml
sonar.branch.name=(Build.SourceBranchName) sonar.dependencyCheck.reportPath=(Build.ArtifactStagingDirectory)\dependency-check-report.xml
sonar.dependencyCheck.htmlReportPath=$(Build.ArtifactStagingDirectory)\dependency-check-report.html

下面也是我的项目文件夹结构

Client
    Code
    Lib
    Package
    Research
    Runners
    Tools

我只想扫描代码文件夹,请帮帮我。

【问题讨论】:

您是否指定了测试类的路径,例如 sonar.tests=...?***.com/questions/52633708/… 并且根据文档github.com/SonarOpenCommunity/sonar-cxx/wiki/FAQ,您应该检查包含/排除模式是否会产生不相交的集合sourcetest files 而不仅仅是源文件。 实际上我已经删除了 sonar.sources 并在此之后添加了 sonar.inclusions 和 sonar.exclusions 。 【参考方案1】:

如何解决运行代码分析任务TFS中文件不能被索引两次错误?

根据您对SonarQube任务步骤的Prepare analysis的配置,您似乎没有正确配置源文件和测试文件。

根据FAQ on SonarOpenCommunity,我们可以知道:

问:错误:原因:文件 [...] 不能被索引两次。

答:如果出现以下错误您必须验证您的排除/包含 特性。请检查包含/排除模式是否产生 源文件和测试文件的不相交集

所以,要解决这个问题,我们需要检查包含/排除模式产生 源文件和测试文件的不相交集。

@Naveen Kumar 的解决方案:

删除了 sonar.sources 并添加了 sonar.inclusions 和 sonar.exclusions 解决了他的问题。

【讨论】:

但我仍然很困惑为什么在删除 sonar.sources 后它会起作用 @NaveenKumar,您似乎已经指定了sonar.sourcessonar.inclusions,它会索引文件两次。你可以从这个线程检查类似的问题:***.com/questions/52633708/… 谢谢我明白了你的意思,但在我尝试使用 sonar.sources=(Build.SourcesDirectory)\Code 之前,它失败了,然后我包含了 sonar.inclusions

以上是关于如何解决运行代码分析任务TFS中文件无法被索引两次错误?的主要内容,如果未能解决你的问题,请参考以下文章

声纳失败,无法索引两次。请检查包含/排除模式是否为主文件和测试文件生成不相交的集合

Sonarqube v.4 TFS 任务“发布分析结果”抛出错误“无法获取指标”

TFS Build 2013 避免代码分析

声纳因无法被索引两次而失败。请检查包含/排除模式是不是会为主文件和测试文件生成不相交的集合

如何在 TFS 2017 中从多个来源克隆代码?

TFS 任务在远程计算机上运行 Power shell 错误:System.Management.Automation.RuntimeException:无法安装“VisualStudioRemote