【问题标题】:IntelliJ not loading transitive dependency in maven projectIntelliJ没有在maven项目中加载传递依赖
【发布时间】:2014-08-10 00:16:37
【问题描述】:

我创建了一个小型库,我们称之为lib。它依赖于另一个库,sublib,它在 Maven 中心可用:

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 &gt; reimport。 (如果你还没有尝试过)
  • @kuporific 谢谢,解决了!我已经尝试过“同步”和类似的选项,但还没有找到......如果你把它变成一个答案,我会接受它
  • 在这种情况下,“同步”的意思是“与文件系统同步”,如果你脑子里有 Maven,这是不直观的。

标签: java maven intellij-idea


【解决方案1】:

我遇到了类似的问题。下面的命令解决了这个问题。它将所有依赖 jar 下载到我的 IDEA 项目中。

mvn -U idea:idea

【讨论】:

    【解决方案2】:

    对我有用的是从使用 maven (Intellij) 版本到使用我之前安装在我的机器上的最新版本。

    【讨论】:

      【解决方案3】:

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

      有时您会看到一个弹出窗口说“需要导入 Maven 项目”;你应该选择Enable Auto-Import

      这个选项可以在Preferences &gt; Maven &gt; Importing &gt; [x] Import Maven projects automatically找到(默认不勾选):

      【讨论】:

      • 虽然自动导入已开启,但并没有解决问题
      • 我很好奇是否有人在重新导入无法解决问题时有解决此问题的想法。
      猜你喜欢
      • 2020-03-01
      • 1970-01-01
      • 2021-11-29
      • 1970-01-01
      • 1970-01-01
      • 2013-02-17
      • 1970-01-01
      • 2020-04-30
      • 1970-01-01
      相关资源
      最近更新 更多