2013-08-26 59 views
0

我使用eclipse Kepler與m2e插件,我想修改一個maven項目並編譯它。我首先將它轉換爲Configure -> Convert to maven project的maven項目,但仍有許多缺少導入。當我使用Run as... -> Maven install項目編譯。Maven項目編譯但在工作區中缺少導入

如何解決缺少的導入問題?

回答

3

告訴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)的項目中。

+0

我已經試過了,它仍然發現超過1000個錯誤。 – Runemoro

+0

您在POM中使用哪些範圍? –

+0

我在哪裏可以看到示波器? – Runemoro

相關問題