Zrobiłem małą bibliotekę, zadzwoń pod numer lib
. To dependends na innej biblioteki, sublib
która jest dostępna w Maven Central:IntelliJ nie ładuje przechodniości w projekcie maven
lib/pom.xml
:
<dependencies>
<dependency>
<groupId>3rdparty</groupId>
<artifactId>sublib</artifactId>
<version>x</version>
</dependency>
</dependencies>
Teraz staram się używać lib
w moim projekcie proj
. Mam ustawić go jako zależność:
proj/pom.xml
:
<dependencies>
<dependency>
<groupId>mynamespace</groupId>
<artifactId>lib</artifactId>
<version>y</version>
</dependency>
</dependencies>
Kiedy biegnę mvn exec:java -D exec.mainClass=mynamespace.proj.Main
program działa poprawnie. Jednakże jeśli uruchomię go z IntelliJ, pojawia się następujący błąd:
java.lang.NoClassDefFoundError: 3rdparty/SomeSubLibClass
at mynamespace.SomeLibClass.method(SomeLibClass.java:100)
Wydaje się to wskazywać, że IntelliJ nie ładuje zależność przechodnia sublib
. Jak mogę to naprawić?
Czasami trzeba kliknąć prawym przyciskiem myszy na 'pom.xml' w drzewie plików i wybrać' maven> reimport'. (Jeśli nie próbowałeś tego już) – kuporific
@kuporific Dzięki, to naprawiłem! Próbowałem już "zsynchronizować" i podobne opcje, ale jeszcze tego nie znalazłem ... Jeśli wpadniesz na odpowiedź, zaakceptuję to. – dtech
W tym kontekście "synchronizacja" oznacza "synchronizację z systemem plików", która nie jest intuicyjny, jeśli masz Mavena w mózgu. – kuporific