首页 > 解决方案 > 可以自动应用建议的修复吗?

问题描述

从我读到的关于 Error Prone 的内容中,我看到它实际上会建议修复代码中的样式错误。即来自https://errorprone.info/docs/installation

ERROR: example/myproject/BUILD:29:1: Java compilation in rule '//example/myproject:hello'
examples/maven/error_prone_should_flag/src/main/java/Main.java:20: error: [DeadException] Exception created but not thrown
    new Exception();
    ^
    (see http://errorprone.info/bugpattern/DeadException)
  Did you mean 'throw new Exception();'?
1 error

我没有看到,是否有办法自动应用这些建议的更改。我从命令行运行容易出错。任何和所有的帮助表示赞赏!让我知道我是否可以澄清任何事情。

标签: javacommand-linelinterrorprone

解决方案


没有办法直接自动应用它们。

但是,您可以让 Error Prone 吐出包含修复程序的补丁文件。参考补丁文档

要对 Error Prone 编译器内置的检查应用建议的修复,您将在编译器调用中添加两个编译器标志:

-XepPatchChecks:MissingOverride,DefaultCharset,DeadException
-XepPatchLocation:/full/path/to/your/source/root

...

您可以直接检查补丁文件,并将其应用于您的源:

cd /full/path/to/your/source/root
patch -p0 -u -i error-prone.patch

(请注意关于这是实验性的免责声明)


推荐阅读