gradle - Sonar Runner失败,但规则异常(exception)

标签 gradle sonarqube sonar-runner

我正在尝试在Java 8项目上使用Gradle发布到Sonar,该项目失败并出现以下错误:

    INFO: ------------------------------------------------------------------------
    INFO: EXECUTION FAILURE
    INFO: ------------------------------------------------------------------------
    Total time: 1:18.786s
    Final Memory: 25M/764M
    INFO: ------------------------------------------------------------------------
    ERROR: Error during Sonar runner execution
    ERROR: Unable to execute Sonar
    ERROR: Caused by: Rule 'squid:S1192' can not use 'Constant/issue' remediation function because this rule does not have a fixed remediation cost.

如果我选择我的项目以使用FindBugs质量配置文件,那么一切正常,并且统计信息将上传到声纳。但是,如果我打开声纳路径配置文件,则会抛出上述错误。

查看该错误,似乎找不到修复成本(我认为必须计算出修复所有技术债务所需的天数)

我尝试卸载其他插件(JavaScript / Python / etc),然后离开Java。我还尝试过调整“技术债务”设置中的默认值。我还恢复了默认配置文件。所有都没有效果。

我正在使用以下版本:
  • 声纳5.0.1(应用程序)
  • 声纳运行器2.4(gradle插件)
  • gradle 2.3
  • Java 8(要分析的项目)
  • Java插件3.1(声纳插件)

  • 请问有人有什么想法吗?

    最佳答案

    通过执行以下操作,我设法使4个有问题的规则起作用:

    第一个表显示了全新安装后数据库的状态

    ╔═════════════╦════════════════════════════╦══════════════════════╗
    ║ PLUGIN_NAME ║      PLUGIN_RULE_KEY       ║ REMEDIATION_FUNCTION ║
    ╠═════════════╬════════════════════════════╬══════════════════════╣
    ║ squid       ║ MethodCyclomaticComplexity ║ (null)               ║
    ║ squid       ║ S1067                      ║ (null)               ║
    ║ squid       ║ S1192                      ║ (null)               ║
    ║ squid       ║ S135                       ║ (null)               ║
    ╚═════════════╩════════════════════════════╩══════════════════════╝
    

    该表显示了新安装中指向克隆数据库并运行/ setup URL的数据库状态。

    注意:这仍然是全新安装,并且在新目录中,因此/ es目录将不存在Step 3 followed here
    ╔═════════════╦════════════════════════════╦══════════════════════╗
    ║ PLUGIN_NAME ║      PLUGIN_RULE_KEY       ║ REMEDIATION_FUNCTION ║
    ╠═════════════╬════════════════════════════╬══════════════════════╣
    ║ squid       ║ MethodCyclomaticComplexity ║ CONSTANT_ISSUE       ║
    ║ squid       ║ S1067                      ║ CONSTANT_ISSUE       ║
    ║ squid       ║ S1192                      ║ CONSTANT_ISSUE       ║
    ║ squid       ║ S135                       ║ CONSTANT_ISSUE       ║
    ╚═════════════╩════════════════════════════╩══════════════════════╝
    

    为了解决这个问题,我已经将REMEDIATION_FUNCTION中的值重新设置为null,现在规则生效了。
    update rules
    set remediation_function = null
    where plugin_name = 'squid'
    and plugin_rule_key in ('MethodCyclomaticComplexity', 'S1192', 'S135', 'S1067')
    

    关于gradle - Sonar Runner失败,但规则异常(exception),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29543497/

    相关文章:

    neo4j - 如何将Neo4j测试 jar 与Gradle一起使用

    gradle - Gradle任务定义中<<是什么意思

    java - sonarqube中的包命名问题

    SonarQube 未获取 Cobertura 代码覆盖率

    sonarqube - 如何在GoCD中添加 Sonar 扫描仪?

    groovy - Gradle Distribution插件提取通用部分以关闭

    安卓撰写 : Type is defined multiple times

    maven - 可以将 SonarQube 分析器从 Maven 切换到 Sonar-Runner 吗?

    active-directory - Sonar 库 LDAP : error code 1 and 49

    svn - Sonar 单片机故障 1 行无故障数据