从我读到的关于 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我没有看到的是,是否有办法自动应用这些建议的更改。我从命令行运行时容易出错。任何帮助表示赞赏!如果我能澄清任何事情,请告诉我。
2 回答
一只名叫tom的猫
TA贡献1906条经验 获得超3个赞
没有办法直接自动应用它们。
但是,您可以让 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
(请注意关于这是实验性的免责声明)
慕雪6442864
TA贡献1812条经验 获得超5个赞
虽然当前没有记录,但可以直接将建议的更改应用于受影响的源代码。一个通过传递来做到这一点-XepPatchLocation:IN_PLACE
:
修改原始示例,调用变为:
-XepPatchChecks:MissingOverride,DefaultCharset,DeadException -XepPatchLocation:IN_PLACE
强烈建议仅当原始文件由版本控制系统管理时才使用此功能。然后可以使用 eg 轻松检查结果git diff
并使用 eg 恢复结果git checkout -- .
。
添加回答
举报
0/150
提交
取消