我使用eclipse Kepler與m2e插件,我想修改一個maven項目並編譯它。我首先將它轉換爲Configure -> Convert to maven project
的maven項目,但仍有許多缺少導入。當我使用Run as... -> Maven install
項目編譯。Maven項目編譯但在工作區中缺少導入
如何解決缺少的導入問題?
我使用eclipse Kepler與m2e插件,我想修改一個maven項目並編譯它。我首先將它轉換爲Configure -> Convert to maven project
的maven項目,但仍有許多缺少導入。當我使用Run as... -> Maven install
項目編譯。Maven項目編譯但在工作區中缺少導入
如何解決缺少的導入問題?
告訴M2E更新項目:那麼項目/ Maven的/更新項目的上下文菜單...
M2E將再次讀取POM和更新類路徑,並再次生成項目。
確保您在.classpath
文件中有這樣的:
<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
注:根據您使用M2E版本的實際語法可能會略有不同。
另一個常見的問題是範圍provided
:
provided
這很像compile
,而是指你所期望的JDK或容器,以提供在運行時的依賴。例如,在爲Java Enterprise Edition構建Web應用程序時,您可以將Servlet API和相關Java EE API的依賴性設置爲範圍,因爲Web容器提供了這些類。此範圍僅在編譯和測試類路徑中可用,且不是傳遞性的。
注的最後一部分:not transitive
這意味着你取決於POM A中說: 「我需要X:Y:Z,範圍提供」。你的項目會看到這個依賴關係,但它不會在你的類路徑中。
要解決此問題,請將相關性複製到具有相同範圍(provided
)的項目中。
我已經試過了,它仍然發現超過1000個錯誤。 – Runemoro
您在POM中使用哪些範圍? –
我在哪裏可以看到示波器? – Runemoro