我有一个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。
希望这会有所帮助。
它有什么错误? –