2013-09-23 40 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