我正在尝试使用Gradle在Java 8项目上发布到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 /等),然后离开Java。我也试过调整Technical Debt设置中的默认值。我也恢复了默认配置文件。一切都没有效果。
我使用以下版本:
有人有任何想法吗?
答案 0 :(得分: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')
答案 1 :(得分:1)
从SonarQube 4.3或之前升级时,必须重置规则的技术债务定义:
没有SQALE插件:
使用SQALE插件:
此票证https://jira.codehaus.org/browse/SONAR-5056是此必要更改的来源。
答案 2 :(得分:0)
从版本4.2更新到4.5.4后,我遇到了同样的问题。要继续我的项目分析,我必须停用以下规则:
所有人都抛出"不能使用'常数/问题'补救功能,因为此规则没有固定的补救成本"错误。
我的安装使用Java 8,sonar-runner 2.4和以下插件: