我總是有一些最模糊的問題,我經常會發現類似的問題,但那些並不適用於我的實際問題......m2eclipse的顯示錯誤,但Maven的編譯罰款
反正,我在Eclipse中出現M2Eclipse問題時顯示錯誤。目前,我的POM.xml
引用xml-apis:xml-apis
的某些版本(是的,我知道Xerces的問題),顯然,xml-apis
取代並不覆蓋JDK中的類。其中一個具體例子是JDK中的rt.jar
中的org.w3c.dom.Element
;這個類存在,但xml-apis
有一個具有相同名稱和包結構的類,有效地取代它 - 或者Eclipse認爲。
這對我來說很糟糕的是,因爲xml-apis
取代了這個實現而不是重寫它,所以代碼中有引用(我已經被授權從Ant遷移到Maven,您可以在其中更改構建順序並且Eclipse會停止發出whinge)庫的位置不匹配。例如,Element e; e.getTextContext();
將產生一個錯誤,例如「The method getTextContent() is undefined for the type Element
」。不過,此錯誤僅在Eclipse的編輯器和「問題」窗口中顯示。但Maven編譯它就好了......那麼爲什麼Eclipse會顯示一個錯誤?
據我所知,沒有辦法在Eclipse中的Maven項目中更改構建順序,使其停止執行此操作。有沒有人有任何解決方案?
供參考(如果它很重要,我懷疑)我正在運行Windows 7專業版,使用JDK 1.6進行編譯,並且使用Maven 3.0.4。
我不知道爲什麼我沒有嘗試這個。謝謝!儘管如此,仍然存在一個差異,那就是顯然,Maven的依賴關係應該在JDK之後。 –
爲什麼它應該在JDK的入口之後? –
打敗我;我原來在JDK之前就已經有了它,而這正是導致錯誤的原因 - 在JDK修復它之後將其切換爲JDK。 我確定編譯器有一些機制,它會注意到存在一個具有重複路徑/名稱的類,並且只在第一個找到它之前找到它。 –