從我讀到的關于 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
提交
取消