Ho un progetto
A/
|--a1
|--a2
Ora c'è un altro progetto nella nostra organizzazione
B/
|--b1
|--b2
|--b3
(Ogni modulo a1, b1 ecc. E i progetti Parent A, B hanno il proprio pom.xml secondo le regole standard di genitore e figlio)
Entrambi i progetti sono verificati sulla mia eclissi locale (da SVN). Sto lavorando attivamente su A.
Sono venuto a sapere che esiste una buona funzionalità comune (b4) sviluppata in B e che avevo bisogno di usarla.
B/
|--b1
|--b2
|--b3
|--b4 (NEW)
Gli sviluppatori di b4 hanno distribuito questo modulo b4 come artefatto nel repository della nostra organizzazione. Ho incluso la dipendenza dal POM del mio modulo, ovvero pom.xml di a2. Eclipse ha scaricato l'artefatto reuqired dal repository e ho potuto importare le classi in esso.
Ora il problema inizia ... Avevo bisogno di controllare il codice sorgente di b4 per qualche scopo e dato che avevo già fatto il check-out B sulla mia eclissi locale, l'ho aggiornato da SVN e ho verificato il modulo b4. Ho anche eseguito pom.xml del modulo b4 con obiettivi come clean, package ecc. Dopo un po 'di tempo, quando ho finito la mia codifica, avevo bisogno di creare un JAR del mio modulo a2. Ho eseguito "pacchetto" su pom.xml e BAM di a2 !! errori n errori per il modulo a2. Anche questi errori non erano molto intuitivi. L'unica cosa è che c'era sicuramente il nome di b4 nei registri.
Soluzione: dopo aver provato molte soluzioni per molte ore, ho eseguito "mvn -U clean install" dalla console nel progetto del mio B direttamente (cioè in ../codebase/B). Poiché B è il genitore, il comando clean install è stato eseguito per tutti i moduli, incluso b4, ed è stato eseguito correttamente. Dopo questo ho eseguito "mvn -U clean install" per il mio progetto genitore che è A. E questo ha funzionato! il modulo a2 è stato compilato, installato, (impacchettato successivamente) con successo.
Qui il punto importante era se b4 è nel tuo spazio di lavoro, non solo installare b4. Dovrai eseguire l'installazione pulita completa B. Sono arrivato a questa soluzione dopo aver letto la risposta di Zuill
EDIT: un'altra cosa qui per notare che se non avessi avuto il progetto B verificato in ambiente locale, questo problema potrebbe non essersi verificato per me. Tendo a pensare che ciò sia accaduto perché avevo fatto il check-out di B nell'area di lavoro locale.