java - IntelliJ 没有在 Maven 项目中加载传递依赖

标签 java maven intellij-idea

我做了一个小库,我们称它为lib。它依赖于另一个库,sublib,它在 Maven central 中可用:

lib/pom.xml:

<dependencies>
    <dependency>
        <groupId>3rdparty</groupId>
        <artifactId>sublib</artifactId>
        <version>x</version>
    </dependency>
</dependencies>

现在我正尝试在我的项目 proj 中使用 lib。我已将其设置为依赖项:

proj/pom.xml:

<dependencies>
    <dependency>
        <groupId>mynamespace</groupId>
        <artifactId>lib</artifactId>
        <version>y</version>
    </dependency>
</dependencies>

当我运行 mvn exec:java -D exec.mainClass=mynamespace.proj.Main 时,程序运行良好。 但是,如果我从 IntelliJ 运行它,我会收到以下错误:

java.lang.NoClassDefFoundError: 3rdparty/SomeSubLibClass
    at mynamespace.SomeLibClass.method(SomeLibClass.java:100)

这似乎表明 IntelliJ 没有加载可传递的 sublib 依赖项。我该如何解决这个问题?

最佳答案

您可以手动右键单击文件树中的pom.xml 文件并选择maven > reimport

有时您会看到一个弹出窗口,提示“需要导入 Maven 项目”;您应该选择启用自动导入

Maven auto import popup

这个选项可以在 Preferences > Maven > Importing > [x] Import Maven projects automatically 中找到(默认情况下未选中):

enter image description here

关于java - IntelliJ 没有在 Maven 项目中加载传递依赖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24306939/

相关文章:

grails - Intellij使用 “mvn grails:exec”而不是原始grails命令

android-studio - 如何在Android Studio中选择代码中的多个位置(sublime)?

java - Selenium Web 驱动程序测试 Web 元素已更新

java - IllegalArgumentException ,我的代码中的错误在哪里?

java - Maven 安装同一依赖项的多个版本

java - 无法从 docker 容器连接到 mysql 主机

java - 以两种方式比较两个 ArrayList?

java - 使用 OMATPE 进行带宽限制

xml - 无法解析原型(prototype) org.apache.maven.archetypes :maven-archetype-webapp

unit-testing - 在 Jenkins 中构建子项目时单元测试结果未显示在 Sonar 中