2013-11-20 20 views
8

Ho un progetto A che dipende dai progetti B e C nel mio spazio di lavoro Eclipse.Maven: m2eclipse: Disabilita risoluzione area di lavoro Mancato artefatto mancante

A volte voglio che A venga eseguito utilizzando le risorse B e C dal repository piuttosto che le versioni nello spazio di lavoro. Pertanto, seleziono A, quindi seleziona "Maven-> Disattiva risoluzione area di lavoro" in modo che A utilizzi le versioni dal repository.

Tuttavia, non appena prendo l'azione di cui sopra, ottengo i messaggi di errore "Missing artefatto B" e "Missing artefatto C" nel file POM del progetto A.

Ho cercato di ripulire il progetto, ho selezionato 'Maven | Aggiorna 'con l'opzione' Forza aggiornamento di vasi/rilasci 'selezionata. Non di questi hanno risolto il problema.

Sto usando 'Maven-> Disabilita la risoluzione dello spazio di lavoro' in modo errato?


Ulteriori informazioni: le versioni esatte di tali progetti sono nel repository. Infatti, se chiudo i progetti B e C nello spazio di lavoro, progetto A utilizza felicemente le versioni di repository di B e C.

+0

Perché il tag [tag: subclipse] e Subclipse nel titolo: perché pensi che Subclipse sia coinvolto? –

+0

Perché "Disabilita la risoluzione dello spazio di lavoro" è una funzionalità del plug-in Subclip. –

+0

Non è-- è una funzionalità del plugin m2eclipse (Maven). –

risposta

5

È necessario che i progetti B e C siano installati nel repository m2 locale con le versioni esatte come essi sono riferimento nel pom.xml del progetto di A.

+1

Lo so. Le versioni esatte di questi progetti sono nel repository. Infatti, se chiudo i progetti B e C nello spazio di lavoro, il progetto A utilizza felicemente le versioni di repository di B e C. –

+0

Nel nostro ambiente il comportamento di m2eclipse è lo stesso menzionato dall'utente2295633 – sgalenski

0

Questo sembra essere un problema noto (se non un bug), dopo tutto: troubleshooting-missing-artifact

ho una configurazione simile (web del progetto a dipende da progetto vaso B) quindi cerco di riprodurre come descritto nel link sopra:

progettoA e progettoB.
Entrambi i progetti utilizzano Maven.
projectA dovrebbe avere una dipendenza dal progetto B.
Impostare uno spazio di lavoro Eclipse con entrambi i progetti.
Fare clic con il tasto destro su projectA e selezionare "Maven ==> Disabilita risoluzione area di lavoro"
Pulire/aggiornare/ricostruire i progetti.
Si ottiene un messaggio di errore "Manufatto Mancante".

Nel mio caso questo non sta accadendo. Solo se poi vado nel mio repository locale e cancello a mano la directory che contiene il mio progetto e poi faccio un aggiornamento di maven.

Non so se è la versione di eclissi ma sto lavorando a: IDE Java EE di Eclipse per gli sviluppatori Web. Kepler Service Release 2 Corporatura ID: 20140224-0627

0

Non capisco il motivo per cui zlinks citato le indicazioni per riprodurre l'errore, ma non la soluzione reale (che ha lavorato per me, almeno). Quindi ...

Nella visualizzazione repository (Finestra ==> Visualizza ==> Altro ==> Maven Repository) si dovrebbe concentrare sul repository unsynched (la mia era il repository locale) e quindi fare clic destro e scegli "reindex"

Questo ha funzionato.

Problemi correlati