容易出错的问题可以自动应用建议的修复吗?
Can Error Prone Auto-Apply Suggested Fixes?
根据我对 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
我没有看到是否有办法自动应用这些建议的更改。我在命令行中 运行 容易出错。任何帮助表示赞赏!如果我能澄清任何事情,请告诉我。
无法直接自动应用它们。
但是,您可以让 Error Prone 吐出包含修复的补丁文件。参考patching documentation:
To apply the suggested fixes for checks built in to the Error Prone compiler, you’ll add two compiler flags to your compiler invocation:
-XepPatchChecks:MissingOverride,DefaultCharset,DeadException
-XepPatchLocation:/full/path/to/your/source/root
...
You can inspect the patch file directly, and apply it to your source with:
cd /full/path/to/your/source/root
patch -p0 -u -i error-prone.patch
(请注意关于这是实验性的免责声明)
虽然不是最新的 documented,但 可以直接将建议的更改应用到受影响的源代码。一个通过传递 -XepPatchLocation:IN_PLACE
:
修改原来的例子,调用变为:
-XepPatchChecks:MissingOverride,DefaultCharset,DeadException
-XepPatchLocation:IN_PLACE
强烈建议仅当原始文件由版本控制系统管理时才使用此功能。然后可以很容易地使用例如检查结果。 git diff
并使用例如恢复git checkout -- .
.
根据我对 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
我没有看到是否有办法自动应用这些建议的更改。我在命令行中 运行 容易出错。任何帮助表示赞赏!如果我能澄清任何事情,请告诉我。
无法直接自动应用它们。
但是,您可以让 Error Prone 吐出包含修复的补丁文件。参考patching documentation:
To apply the suggested fixes for checks built in to the Error Prone compiler, you’ll add two compiler flags to your compiler invocation:
-XepPatchChecks:MissingOverride,DefaultCharset,DeadException -XepPatchLocation:/full/path/to/your/source/root
...
You can inspect the patch file directly, and apply it to your source with:
cd /full/path/to/your/source/root patch -p0 -u -i error-prone.patch
(请注意关于这是实验性的免责声明)
虽然不是最新的 documented,但 可以直接将建议的更改应用到受影响的源代码。一个通过传递 -XepPatchLocation:IN_PLACE
:
修改原来的例子,调用变为:
-XepPatchChecks:MissingOverride,DefaultCharset,DeadException
-XepPatchLocation:IN_PLACE
强烈建议仅当原始文件由版本控制系统管理时才使用此功能。然后可以很容易地使用例如检查结果。 git diff
并使用例如恢复git checkout -- .
.