4

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

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

4

3 回答 3

8

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

希望这可以帮助。

于 2013-09-25T12:58:24.370 回答
4

没有 Maven 命令可以完成此操作。您需要检查导致哪些类NoClassDefFoundError,找出依赖项(Google) - 它们包含在哪些 JAR 中,并将它们与runtime您的 pom.xml 中的范围一起添加。

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

于 2013-09-23T10:25:05.847 回答
0

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

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

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

您可以通过以下命令检查项目的依赖关系树 - mvn dependency:tree。这将仅列出您在此处pom.xml的更多信息中列出的有关 deoendencies 的信息

于 2013-09-24T11:24:39.767 回答