自动修复Sonar发现的问题

时间:2013-12-11 13:06:17

标签: java automation sonarqube

我正在努力修复声纳在一个非常古老的Java项目(大约8岁)上捕获的问题。 这是一个庞大的项目,有很多错误的代码被声纳捕获。 虽然它们是非常简单的修复,但它们中有很多。 有没有办法自动修复一系列类似的问题? 就像我有大约1200个案例的“陈述应该在单独的行上”,手动完成需要很长时间。 我可以以某种方式自动修复这些修补程序吗?

7 个答案:

答案 0 :(得分:2)

目前没有可用于自动修复声纳病毒的工具。有walkmod,但它只适用于琐碎的代码气味。

我目前正在为java中的sonarube错误编写一个自动修复工具。它使用INRIA的spoon来修复错误。 github回购是sonarqube-repair。它修复了五个错误:规则编号18541948205522592095。一旦有一些重大进展,我会更新这个答案。

答案 1 :(得分:1)

我认为我不希望Sonar改变消息来源。这是一个代码分析器

您可以将IDE配置为在保存时进行格式化,并对所有受影响的源文件执行初始格式,以便将声明放在不同的行上。

此外,您可能希望查看问题的重要性并更改/编辑质量配置文件。

答案 2 :(得分:0)

如果您想对大量问题应用相同的分辨率,可以使用Bulk Change功能(SonarQube 3.7 LTS中引入)。

在您的特定情况下,您还可以定义issue exclusion rules以防止在代码的选定部分引发这些问题(在SonarQube 4.0中引入)。

最后,如果某个特定规则使您无法解决实际问题,则可以在质量配置文件中完全禁用此规则。

答案 3 :(得分:0)

一步一步地进行(对于Eclipse IDE):

  1. 您可以在整个项目中使用保存操作:右键单击Java项目源 - >来源 - >格式...
  2. 右键单击Java项目源 - >来源 - >清理......
  3. 使用 AutoRefactor 插件:右键点击您的代码 - > AutoRefactor - >自动重构
  4. 使用WalkMod(未经测试)。

答案 4 :(得分:0)

您应该尝试https://www.sonarlint.org/,这应该可以解决问题。

答案 5 :(得分:0)

您可以使用Viofixer工具-https://www.viofixer.com/

VioFixer会自动修复sonarqube报告的问题。 VioFixer通过在软件开发的编码阶段提供自动漏洞修复选项来帮助缩短开发时间并保护完整的应用程序。

答案 6 :(得分:0)

现在,JavaPerf Consulting推出了一种服务工具,用于解决SonarQube确定的故障,请参阅更多http://www.jperf.com。很快,您将拥有带有命令行界面和自动更新的产品。