我已经制作了一个小型图书馆,我们称之为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
依赖项。我该如何解决这个问题?
答案 0 :(得分:6)
您可以手动右键单击文件树中的pom.xml
文件,然后选择maven > reimport
。
有时你会看到一个弹出窗口&#34; Maven项目需要导入&#34 ;;你应该选择Enable Auto-Import
。
此选项可在Preferences > Maven > Importing > [x] Import Maven projects automatically
中找到(默认情况下未选中):
答案 1 :(得分:0)
对我来说有用的是改变使用maven(Intellij)版本并使用我之前在我的机器上安装的最新版本。
答案 2 :(得分:0)
我有类似的问题。以下命令解决了该问题。它将所有依赖项jar下载到我的IDEA项目中。
mvn -U idea:idea