我看到一個問題,其中由Maven構建的給定源文件生成的類文件與Eclipse構建的文件不同。與m2Eclipse和Maven不兼容的Eclipse構建器
Eclipse的生成器優化掉下面的方法:
public SomeClass clone() {
SomeClass clone = (SomeClass) super.clone();
return clone;
}
這種方法顯然是不必要的,但我沒有,因爲它產生改變源的選項。
Eclipse使用哪種構建器來編譯這些類?我使用的m2Eclipse插件,我認爲只是調用Maven來執行構建。爲什麼Eclipse後來認爲需要使用不同的構建器來執行另一個構建?我可以禁用此Eclipse構建器還是將其配置爲阻止優化?
- Eclipse版本:3.7
- m2eclipse的版本:1.0.100.20110804-1717(配置爲使用外部的Maven)
- Maven的版本:2.2.1
更新
我發現了一個描述發生了什麼的Eclipse bug report。爲了澄清,它實際上並不是Eclipse編譯器正在刪除任何內容,它只是沒有引入標準JDK編譯器引入的合成「橋」方法。錯誤報告被標記爲「已解決 - 不會修復」。
我還沒有找到阻止Maven構建器運行後運行Eclipse構建器的方法。但我們的修復方法是修改代碼生成器以將顯式serialVersionUID添加到生成的代碼中。
感謝您的建議。不幸的是,禁用Java Builder會導致來自其他Java項目的工作區解析的其他問題。 –