我製作了一個小型庫,我們稱之爲lib
。它dependends另一個庫,sublib
這是可以在Maven的中央:IntelliJ未加載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> reimport'。 (如果你沒有嘗試過) – kuporific
@kuporific謝謝,修復它!我已經嘗試過「同步」和類似的選項,但是還沒有找到......如果你把它作爲答案,我會接受它 – dtech
在這種情況下,「同步」意味着「與文件系統同步」直覺,如果你有大腦上的Maven。 – kuporific