我正在修复一个非常老的Java项目中由sonar捕获的问题(8岁左右).这是一个巨大的项目,有很多错误的代码被声纳捕获.虽然它们是非常琐碎的修复但是有很多.有没有一种方法可以自动修复一系列类似的问题?就像我有大约1200个“语句应该在单独的行上”的情况,手动完成需要很长时间。我能以某种方式自动化这些修复吗?
v9tzhpje1#
目前还没有自动修复sonarube bug的工具。有walkmod,但它只适用于琐碎的代码气味。我目前正在用java编写一个sonarube bug的自动修复工具。它使用INRIA的spoon来修复bug。github的repo是sonarqube-repair。它修复了五个bug:规则编号1854,1948,2055,2259和2095。一旦有一些重大进展,我会更新这个答案。
pinkon5k2#
我不认为我会希望Sonar改变源代码,它是一个代码分析器。您可以配置IDE在保存时进行格式化,并对所有受影响的源文件进行初始格式化,以便将语句放在单独的行上。此外,您可能需要查看问题的重要性并更改/编辑质量配置文件。
jdzmm42g3#
如果您想将相同的解决方案应用于大量问题,您可以使用Bulk Change功能(在SonarQube 3.7 LTS中引入)。在您的特定情况下,您还可以定义问题排除规则,以防止在代码的选定部分(在SonarQube 4.0中引入)上引发这些问题。最后,如果一个特定的规则让你烦恼到阻止你处理真实的问题的地步,你可以在你的质量档案中完全禁用这个规则。
aydmsdu94#
一步一步地做(对于Eclipse IDE):1.您可以对整个项目使用 * 保存操作 *:右键单击您的Java项目source -〉Source -〉Format...1.右键单击您的Java项目源-〉源-〉清理...1.使用 * AutoRefactor * 插件:右键单击您的代码-〉AutoRefactor -〉自动重构1.使用WalkMod(未测试)。
uelo1irk5#
你应该试试https://www.sonarlint.org/,这应该可以。
d5vmydt96#
您可以使用Viofixer工具-https://www.viofixer.com/VioFixer会自动修复sonarqube报告的问题。VioFixer通过在软件开发的编码阶段提供自动漏洞修复选项,帮助缩短开发时间并保护已完成的应用程序。
qni6mghb7#
现在JavaPerf Consulting推出了一项服务,该服务提供了解决SonarQube识别的故障的工具,请参阅更多http://www.jperf.com。很快,您将拥有带有命令行界面和自动更新的产品。
hpcdzsge8#
Cleanthat可以自动修复Sonar、PMD、CheckStyle等报告的各种问题。
它可以通过mvn,gradle和GitHub应用程序获得。
mvn
gradle
8条答案
按热度按时间v9tzhpje1#
目前还没有自动修复sonarube bug的工具。有walkmod,但它只适用于琐碎的代码气味。
我目前正在用java编写一个sonarube bug的自动修复工具。它使用INRIA的spoon来修复bug。github的repo是sonarqube-repair。它修复了五个bug:规则编号1854,1948,2055,2259和2095。一旦有一些重大进展,我会更新这个答案。
pinkon5k2#
我不认为我会希望Sonar改变源代码,它是一个代码分析器。
您可以配置IDE在保存时进行格式化,并对所有受影响的源文件进行初始格式化,以便将语句放在单独的行上。
此外,您可能需要查看问题的重要性并更改/编辑质量配置文件。
jdzmm42g3#
如果您想将相同的解决方案应用于大量问题,您可以使用Bulk Change功能(在SonarQube 3.7 LTS中引入)。
在您的特定情况下,您还可以定义问题排除规则,以防止在代码的选定部分(在SonarQube 4.0中引入)上引发这些问题。
最后,如果一个特定的规则让你烦恼到阻止你处理真实的问题的地步,你可以在你的质量档案中完全禁用这个规则。
aydmsdu94#
一步一步地做(对于Eclipse IDE):
1.您可以对整个项目使用 * 保存操作 *:右键单击您的Java项目source -〉Source -〉Format...
1.右键单击您的Java项目源-〉源-〉清理...
1.使用 * AutoRefactor * 插件:右键单击您的代码-〉AutoRefactor -〉自动重构
1.使用WalkMod(未测试)。
uelo1irk5#
你应该试试https://www.sonarlint.org/,这应该可以。
d5vmydt96#
您可以使用Viofixer工具-https://www.viofixer.com/
VioFixer会自动修复sonarqube报告的问题。VioFixer通过在软件开发的编码阶段提供自动漏洞修复选项,帮助缩短开发时间并保护已完成的应用程序。
qni6mghb7#
现在JavaPerf Consulting推出了一项服务,该服务提供了解决SonarQube识别的故障的工具,请参阅更多http://www.jperf.com。很快,您将拥有带有命令行界面和自动更新的产品。
hpcdzsge8#
Cleanthat可以自动修复Sonar、PMD、CheckStyle等报告的各种问题。
它可以通过
mvn
,gradle
和GitHub应用程序获得。