自动修复 Sonar 发现的问题

问题描述 投票:0回答:9

我正在致力于修复声纳在一个非常古老的 Java 项目(大约有 8 年历史)上捕获的问题。 这是一个巨大的项目,有很多被声纳捕获的错误代码。 虽然它们是非常琐碎的修复,但它们有很多。 有没有办法自动修复一系列类似的问题? 就像我有大约 1200 个“语句应该在不同的行上”的案例一样,手动执行需要很长时间。 我可以以某种方式自动执行这些修复吗?

java automation sonarqube
9个回答
6
投票

目前没有可用于自动修复 sonarube 错误的工具。有 walkmod,但它仅适用于琐碎的代码气味。

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


2
投票

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

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

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


0
投票

如果您想对大量问题应用相同的解决方案,可以使用批量更改功能(在 SonarQube 3.7 LTS 中引入)。

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

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


0
投票

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

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

0
投票

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

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


0
投票

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


0
投票

Cleanthat 可以自动修复 Sonar、PMD、CheckStyle 等报告的各种问题。

可通过

mvn
gradle
以及 GitHub 应用程序获得。


0
投票

我的回答可能会有一点偏见,因为我在 Pixee 背后的团队工作。 Pixee 是一个 GitHub 应用程序,可以帮助您通过拉取请求自动解决您的 sonarcloud 发现结果。

请随时查看我们的文档。这些文档概述了如何开始以及我们可以提供帮助的声纳规则


-1
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.