如何找到缺少哪些maven依赖项

时间:2013-09-23 10:11:33

标签: java maven

我有一个网络项目和一个pom.xml文件。它与compilepackage有足够的依赖关系,但还不足以启动项目。在我的IDE中,它显示一切正常,但是当启动应用程序时它有错误。当我从另一个应用程序添加外部pom.xml时,我的应用程序启动。

那么有什么方法可以找出哪些依赖项缺失,以及将来如何确定使用这个或那个需要哪些依赖项呢?

3 个答案:

答案 0 :(得分:5)

您可以使用mvn dependency:analyze来确定哪些依赖项为used and declaredused and undeclaredunused and declared
有关更多信息,请参阅:http://maven.apache.org/plugins/maven-dependency-plugin/analyze-mojo.html

希望这有帮助。

答案 1 :(得分:2)

没有maven命令来实现这一目标。您需要检查哪些类导致NoClassDefFoundError,找出依赖项(Google) - 它们随附的JAR,并在pom.xml中添加runtime范围。

在Web项目中,您经常针对servlet或Java EE规范JAR进行编译(它们只包含接口),但是您需要在运行时存在实际的实现JAR。这些JAR通常被假定在您运行的容器中可用(如Tomcat或JBoss),在这种情况下,它们将在您的pom.xml中标记为provided范围。

答案 2 :(得分:0)

您需要检查输出日志中的NoClassDefFoundError并相应地添加依赖项。

搜索缺少的依赖项的最佳资源是Maven Central Repository

要获取构建的详细调试日志,请在命令行中使用-X

您可以按照以下命令 - mvn dependency:tree检查项目的依赖关系树。这将只列出您pom.xml更多信息中列出的有关deoendencies的信息here