我有一個web項目和一個pom.xml
文件。它對compile
和package
有足夠的依賴關係,但不足以啓動該項目。在我的IDE中顯示一切正常,但是當啓動應用程序時它有錯誤。當我從另一個應用程序添加外部pom.xml時,我的應用程序啓動。如何找到哪些maven依賴關係丟失
那麼有沒有什麼辦法可以找出哪些依賴缺失,以及在將來如何確定使用這個或那個需要哪些依賴關係?
我有一個web項目和一個pom.xml
文件。它對compile
和package
有足夠的依賴關係,但不足以啓動該項目。在我的IDE中顯示一切正常,但是當啓動應用程序時它有錯誤。當我從另一個應用程序添加外部pom.xml時,我的應用程序啓動。如何找到哪些maven依賴關係丟失
那麼有沒有什麼辦法可以找出哪些依賴缺失,以及在將來如何確定使用這個或那個需要哪些依賴關係?
沒有maven命令來完成此操作。您需要檢查導致NoClassDefFoundError
的哪些類,找出依賴關係(Google) - 將它們裝入哪些JAR,並將它們與runtime
範圍一起添加到您的pom.xml中。
在web項目中,您經常會針對servlet或Java EE規範JAR(它們只包含接口)進行編譯,但您需要實際的實現JAR才能在運行時出現。這些JAR通常被認爲在您運行的容器(如Tomcat或JBoss)中可用,在這種情況下,它們將在您的pom.xml中被標記爲provided
作用域。
您可以使用此網站(http://www.findjar.com)按類名本地化JAR。然後,您可以在http://search.maven.org/ – polypiel
中找到maven依賴關係。您還可以使用search.maven.org或jarvana.com或mvnrepository.com。 – carlspring
您需要檢查輸出日誌中的NoClassDefFoundError
並相應地添加相關性。
的最佳資源,以尋找失蹤的依賴關係是Maven Central Repository
爲了讓您的構建詳細的調試日誌,在命令行中使用-X
。
您可以通過以下命令檢查項目的依賴關係樹 - mvn dependency:tree
。這將只列出有關它here
在pom.xml
更多列出的deoendencies可以使用mvn dependency:analyze
的信息來確定哪些依賴關係屬於used and declared
或used and undeclared
或unused and declared
。
欲瞭解更多信息,請參閱:http://maven.apache.org/plugins/maven-dependency-plugin/analyze-mojo.html。
希望這會有所幫助。
它有什麼錯誤? –