IntelliJ没有在maven项目中加载传递依赖

时间:2014-06-19 12:43:33

标签: java maven intellij-idea

我已经制作了一个小型图书馆,我们称之为lib。它取决于另一个库,sublib,可在Maven中心使用:

lib/pom.xml

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

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

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依赖项。我该如何解决这个问题?

3 个答案:

答案 0 :(得分:6)

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

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

Maven auto import popup

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

enter image description here

答案 1 :(得分:0)

对我来说有用的是改变使用maven(Intellij)版本并使用我之前在我的机器上安装的最新版本。

答案 2 :(得分:0)

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

mvn -U idea:idea