【问题标题】:Sonarcloud + Travis fails for custom C quality profileSonarcloud + Travis 无法自定义 C 质量配置文件
【发布时间】:2017-11-30 14:09:51
【问题描述】:

我在 Travis 中使用 Sonarcloud 插件设置了一个构建作业,以便它分析我们的一个 C/C++ 项目,链接:

GitHub 源 - https://github.com/inilabs/libcaer

特拉维斯工作 - https://travis-ci.org/inilabs/libcaer/jobs/247488797

Sonarcloud - https://sonarcloud.io/dashboard?id=com.inilabs.libcaer

现在,如果我使用默认的 C 质量配置文件“声纳方式”运行它,它可以正常工作。然后我创建了一个测试配置文件,在其中添加了一个规则并删除了另一个,这也有效,因此基本的自定义质量配置文件似乎工作正常。然后我创建了我想使用的主要质量配置文件“inilabs”,其中启用了更多规则(~50)和禁用了几个(~10)。令人惊讶的是,此构建在“声纳扫描仪”步骤期间失败,但有以下例外:

java.lang.IllegalStateException: Unable to load component class org.sonar.scanner.report.ActiveRulesPublisher

(请参阅上面链接的构建以了解完整错误,使用 'sonar-scanner -X 运行) 似乎可以很好地获取具有自定义质量配置文件的文件,所以我唯一能想到的是,在 ~60 个更改之一中必须有一个特定规则导致此失败,但我不知道如何调试它了解它是哪一个。希望您能帮我找出问题所在,谢谢!

【问题讨论】:

  • 我们目前正在研究它。
  • 感谢您的快速回复!与此同时,我还在我们的一个 Java 项目中添加了 Travis/Sonar 支持,并且在 Maven sonar:sonar 目标中看到同样的失败:travis-ci.org/inilabs/jfxaer/jobs/247556760 但对于 Java,我仍在使用默认的“Sonar 方式" 个人资料。
  • 我也尝试过删除 Sonarcloud 项目以及 Travis 缓存,然后重新生成所有内容,但这也无济于事。

标签: sonarqube sonarqube-scan


【解决方案1】:

该错误是由于您的质量配置文件中的某些规则停用所致,例如,请参阅更改日志中的“restrict should not be used”:https://sonarcloud.io/organizations/inilabs-github/quality_profiles/changelog?language=c&name=inilabs

此错误已在 https://jira.sonarsource.com/browse/SONAR-9489 中跟踪,并将尽快修复。

一种解决方法是将配置文件复制到另一个。损坏的规则不会被复制。

很抱歉给您带来不便。

【讨论】:

  • 感谢您的快速和称职的支持!
  • 您好@llongi 为您提供信息,修复已应用于 SonarCloud!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-11-15
  • 1970-01-01
  • 2018-09-06
  • 1970-01-01
  • 2021-10-26
  • 2016-03-16
  • 1970-01-01
相关资源
最近更新 更多