2014-06-19 14 views
5

Ho creato una piccola libreria, chiamiamola lib. Si dependends su un'altra libreria, sublib che è disponibile in Maven centrale:IntelliJ non carica dipendenza transitiva nel progetto maven

lib/pom.xml:

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

Ora sto cercando di utilizzare lib nel mio progetto proj. Ho impostato come una dipendenza:

proj/pom.xml:

<dependencies> 
    <dependency> 
     <groupId>mynamespace</groupId> 
     <artifactId>lib</artifactId> 
     <version>y</version> 
    </dependency> 
</dependencies> 

Quando eseguo mvn exec:java -D exec.mainClass=mynamespace.proj.Main il programma funziona bene. Tuttavia, se l'eseguo da IntelliJ, ottengo il seguente errore:

java.lang.NoClassDefFoundError: 3rdparty/SomeSubLibClass 
    at mynamespace.SomeLibClass.method(SomeLibClass.java:100) 

Questo sembra indicare che IntelliJ non carica la dipendenza transitiva sublib. Come posso risolvere questo?

+1

A volte devo fare clic destro su 'pom.xml' nell'albero dei file e selezionare' maven> reimport'. (Nel caso non l'abbiate già provato) – kuporific

+0

@kuporific Grazie, l'ha risolto! Ho provato "sincronizzare" e opzioni simili già ma non l'ho ancora trovato ... Se lo fai in una risposta lo accetterò – dtech

+0

In questo contesto "sincronizzare" significa "sincronizzare con il file system" che è non- intuitivo se hai Maven sul cervello. – kuporific

risposta

6

È possibile fare manualmente clic con il pulsante destro del mouse sul file pom.xml nell'albero dei file e selezionare maven > reimport.

A volte viene visualizzato un popup che dice "I progetti Maven devono essere importati"; dovresti selezionare Enable Auto-Import.

Maven auto import popup

Questa opzione può essere trovato in Preferences > Maven > Importing > [x] Import Maven projects automatically (e non è selezionata per impostazione predefinita):

enter image description here

+0

L'importazione automatica era attiva, quindi non ho risolto il problema – dtech

+0

Sarei curioso di sapere se qualcuno ha idee per risolverlo quando reimportare NON risolve il problema. – spacemanaki

0

Quello che ha funzionato per me stava cambiando dal usando Maven versione (Intellij) ed usando il mio ultimo versione che è stata installata sul mio computer in precedenza.

Problemi correlati