声纳因无法被索引两次而失败。请检查包含/排除模式是不是会为主文件和测试文件生成不相交的集合
Posted
技术标签:
【中文标题】声纳因无法被索引两次而失败。请检查包含/排除模式是不是会为主文件和测试文件生成不相交的集合【英文标题】:Sonar fails with can't be indexed twice. Please check that inclusion/exclusion patterns produce disjoint sets for main and test files声纳因无法被索引两次而失败。请检查包含/排除模式是否会为主文件和测试文件生成不相交的集合 【发布时间】:2018-01-20 03:57:21 【问题描述】:我刚刚升级到 SonarQube 6.4,同时移到了 mysql。每当我尝试解析特定解决方案时,我都会收到以下消息:
不能被索引两次。请检查包含/排除模式是否会为主文件和测试文件生成不相交的集合
我正在使用新的 SonarQube 任务通过 VSTS 运行扫描仪。我也尝试将 -X 标志传递给 SQ,但它没有通过 VSTS 任务。我还将 mysql 最大数据包提高到 512M 并重新启动了 mysql 和 Sonar 服务器。我很茫然
【问题讨论】:
您检查过项目的包含/排除模式吗? 构建定义设置的任务是什么?可以在这里分享详细日志吗? @G. Ann 我已排除不需要扫描的文件类型。奇怪的是,当我使用 MSSQL 在 6.1 上运行相同的扫描时,它可以工作。我 “准备声纳 Qube 分析”的设置是标准的 我确实有 /d:/sonar.verbose=true 的附加设置。日志文件很大 2017-08-14T23:44 :57.2369425Z ##[error]00:44:57.205 错误:SonarQube Scanner 执行期间出错 2017-08-14T23:44:57.2369425Z ##[error]00:44:57.205 错误:文件 [moduleKey=DevDeploySIMS8, relative= Packages/Microsoft.Net.Compilers.1.0.0/tools/csc.exe, basedir=F:\build_work\6\s] 不能被索引两次。请检查包含/排除模式是否会为主文件和测试文件生成不相交的集 2017-08-14T23:44:57.2369425Z ##[error]00:44:57.205 可以分享一下OneDrive上的详细日志吗? 【参考方案1】:看看这里的帖子: https://github.com/SonarSource/sonar-csharp/issues/958
并遵循底部的建议:
由 /d:sonar.source="Project" 或 /d:sonar.tests="Project.Tests" 引起的问题,只需删除即可。
它对我有用。
【讨论】:
【参考方案2】:就我而言,除了排除之外,我还写了
sonar.sources=.
一旦我删除它,它就开始工作了。
【讨论】:
【参考方案3】:“sonar.tests.inclusions=src/**/*.spec.ts”和“sonar.tests=src”有冲突,只取一个
【讨论】:
【参考方案4】:访问声纳,在主分支中输入您的项目屏幕,然后: 单击管理>分析范围>在*代码覆盖选项*重复 *源文件排除 插入读取代码时可能被计算两次的文件夹,在我的情况下它是 src 文件夹,所以我把它放在 ** /src/ **(无空格)字段之一中,问题就解决了
【讨论】:
【参考方案5】:如果您在测试 command 和 sonar-project.properties 文件中提到了排除属性。 从其中任何一个中删除它。
检查所有属性,删除所有重复项。
【讨论】:
以上是关于声纳因无法被索引两次而失败。请检查包含/排除模式是不是会为主文件和测试文件生成不相交的集合的主要内容,如果未能解决你的问题,请参考以下文章
Gradle Build - 任务“:sonarqube”的执行失败无法被索引两次