Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 自动修复声纳发现的问题_Java_Automation_Sonarqube - Fatal编程技术网

Java 自动修复声纳发现的问题

Java 自动修复声纳发现的问题,java,automation,sonarqube,Java,Automation,Sonarqube,我正在修复sonar在一个非常老的Java项目(大约8年)中发现的问题。 这是一个巨大的项目,有很多错误的代码被声纳捕捉到。 虽然它们是非常琐碎的修复,但是有很多。 有没有办法自动修复一系列类似的问题? 就像我有大约1200个“语句应该在单独的行上”的案例一样,手动操作需要花费很多时间。 我能以某种方式自动化这些修复吗?我不想让Sonar改变源代码。这是一个代码分析器 您可以将IDE配置为在保存时格式化,并对所有受影响的源文件进行初始格式化,以便它将语句放在单独的行上 此外,您可能需要查看问题的

我正在修复sonar在一个非常老的Java项目(大约8年)中发现的问题。 这是一个巨大的项目,有很多错误的代码被声纳捕捉到。 虽然它们是非常琐碎的修复,但是有很多。 有没有办法自动修复一系列类似的问题? 就像我有大约1200个“语句应该在单独的行上”的案例一样,手动操作需要花费很多时间。
我能以某种方式自动化这些修复吗?

我不想让Sonar改变源代码。这是一个代码分析器

您可以将IDE配置为在保存时格式化,并对所有受影响的源文件进行初始格式化,以便它将语句放在单独的行上


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

如果您想对大量问题应用相同的解决方案,可以使用该功能(SonarQube 3.7 LTS中介绍)

在您的特定情况下,您还可以定义以防止在代码的选定部分(SonarQube 4.0中介绍)出现这些问题

最后,如果某个特定规则使您烦恼,以致无法处理实际问题,您可以在质量配置文件中完全禁用该规则。

逐步执行(对于Eclipse IDE):

  • 您可以对整个项目使用保存操作:右键单击Java项目源->源->格式
  • 右键单击Java项目源->源->清理
  • 使用插件:右键点击你的代码->自动重构->自动重构
  • 使用(未测试)

  • 目前没有可用于自动修复sonarube bug的工具。有,但它只适用于琐碎的代码气味


    我目前正在为java中的sonarube bug编写一个自动修复工具。它使用INRIA来修复bug。github回购协议是。它修复了五个bug:规则编号、和。一旦有重大进展,我将更新此答案。

    您应该尝试一下,这样就可以了。

    您可以使用Viofixer工具-


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

    现在,JavaPerf Consulting推出了一项服务,用于解决SonarQube发现的故障,请参阅更多。很快,您将拥有带有命令行界面和自动更新的产品。

    例如,这1200个案例听起来根本不是一个真正的问题。你不能让它只显示错误吗?(顺便说一句,像“astyle”这样的格式化工具都可以格式化你的文件。但我不知道这是否是它所抱怨的。编辑你的Q,包括此类错误的代码。)我知道这很愚蠢,我的第一个解决方案也是从报告中删除它们,但管理层想要它!我使用eclipse插件进行java代码格式化,并解决了大部分问题。谢谢。请看:今天walkmod是一个有很多问题的死项目。我不想让sonar进行更改,我正在寻找一个单独的工具或插件,在我完成sonar的代码分析之后再进行更改。单独行上的语句只是一个示例,可以通过使用代码格式来解决。举一个更好的例子,我有280例“if/else/For/while/do语句应该始终使用大括号”,手动添加287*2个大括号很痛苦!!或者大约1000例“避免注释掉代码行”…有没有一种方法可以通过向插件提供说明来自动做到这一点?也可以通过在Eclipse中保存操作或格式化来添加卷曲。注释是另一回事,但可以通过正则表达式替换来实现。不过,这些都是小问题,可以从配置文件中删除或编辑。感谢您的工具。但是我正在寻找一些能够为我批量更改代码的东西。