2013-09-23 39 views
2

我有一個web項目和一個pom.xml文件。它對compilepackage有足夠的依賴關係,但不足以啓動該項目。在我的IDE中顯示一切正常,但是當啓動應用程序時它有錯誤。當我從另一個應用程序添加外部pom.xml時,我的應用程序啓動。如何找到哪些maven依賴關係丟失

那麼有沒有什麼辦法可以找出哪些依賴缺失,以及在將來如何確定使用這個或那個需要哪些依賴關係?

+1

它有什麼錯誤? –

回答

2

沒有maven命令來完成此操作。您需要檢查導致NoClassDefFoundError的哪些類,找出依賴關係(Google) - 將它們裝入哪些JAR,並將它們與runtime範圍一起添加到您的pom.xml中。

在web項目中,您經常會針對servlet或Java EE規範JAR(它們只包含接口)進行編譯,但您需要實際的實現JAR才能在運行時出現。這些JAR通常被認爲在您運行的容器(如Tomcat或JBoss)中可用,在這種情況下,它們將在您的pom.xml中被標記爲provided作用域。

+1

您可以使用此網站(http://www.findjar.com)按類名本地化JAR。然後,您可以在http://search.maven.org/ – polypiel

+0

中找到maven依賴關係。您還可以使用search.maven.org或jarvana.com或mvnrepository.com。 – carlspring

0

您需要檢查輸出日誌中的NoClassDefFoundError並相應地添加相關性。

的最佳資源,以尋找失蹤的依賴關係是Maven Central Repository

爲了讓您的構建詳細的調試日誌,在命令行中使用-X

您可以通過以下命令檢查項目的依賴關係樹 - mvn dependency:tree。這將只列出有關它here