2016-01-11 26 views
6

Il m2eclipse Homepage afferma che il plugin è in grado di quanto segue:m2eclipse: Risoluzione Maven dipendenze dall'area di lavoro di Eclipse

Risoluzione Maven dipendenze dall'area di lavoro di Eclipse, senza l'installazione di repository Maven locale

Siccome non ho trovato alcuna documentazione, non sono riuscito a capire cosa significhi esattamente e come sia fatto. Sono particolarmente interessato ai casi in cui un progetto nello spazio di lavoro corrisponde a due diversi vasi (che contengono entrambe parti delle classi).

+0

Che cos'è esattamente la configurazione?Se utilizzi Maven con Eclipse, dovrai installare M2Eclipse altrimenti non sarai in grado di lavorare. – Tunaki

+0

Sto solo cercando di scoprire se M2Eclipse potrebbe essere uno strumento utile per noi. Non ho ancora creato nulla. –

+0

In realtà, stavo chiedendo cosa intendessi per "progetto nello spazio di lavoro corrisponde a due diversi vasi" (spiacente) – Tunaki

risposta

7

L'area di lavoro Eclipse (quando si utilizza M2E) funge da repository di Maven locale. Ogni progetto Maven che hai estratto è disponibile per essere usato come dipendenza (proprio come se lo avessi installato sul tuo repository locale).

Ad esempio: Se il progetto A dipende da lib B versione 1.0.0 e si controlla l'origine per lib B sulla versione 1.0.0, Eclipse sarà in grado di compilare A utilizzando la versione di lavoro di B. Verrai non è necessario installare lib B nel repository locale.

Questo è particolarmente utile quando è necessario apportare modifiche a una libreria e testarla in un'applicazione che si trova anche nell'area di lavoro.

Si noti, tuttavia, che la versione della dipendenza per lib B sul pom A e la versione dichiarata di B su pom B deve corrispondere ESATTAMENTE affinché funzioni correttamente. Ad esempio, se su pom.xml per A hai:

<dependency> 
     <groupId>a.b.c</groupId> 
     <artifactId>B</artifactId> 
     <version>1.0.0</version> 
</dependency> 

È necessario il checkout B sulla versione 1.0.0.

Se è necessario apportare modifiche a B, probabilmente si dovrà cambiare la propria versione di dipendenza a qualcosa-SNAPSHOT (1.0.1-SNAPSHOT, per esempio) e controllare che versione di B.

È inoltre necessario selezionare l'opzione "Risolvi risorse dell'area di lavoro" nel progetto Eclipse affinché funzioni. (Fare clic con il pulsante destro del mouse sul progetto -> Proprietà -> Maven -> Risolvi dipendenze dai progetti area di lavoro)

Se si desidera assicurarsi che Eclipse stia utilizzando la versione sul proprio spazio di lavoro e non una versione installata (o anche una versione da un repository remoto), selezionare la scheda "Dipendenze" nell'editor pom.xml. Le dipendenze "regolari" sono mostrate con icone jar, le dipendenze risolte nello spazio di lavoro (come lib B) sono mostrate con le icone del progetto Eclipse.

+0

Questo è piuttosto utile! –

2

M2Eclipse legge il descrittore di Maven (pom.xml) dei progetti aperti nell'area di lavoro per risolvere gli artefatti, anche se il progetto non è stato ancora installato nel repository di Maven locale (comando mvn install).

Ad esempio, si hanno 2 progetti A e B. A dipende da B. Se si sta lavorando su entrambi i progetti, ed entrambi vengono aperti nell'area di lavoro. Eclipse costruirà automaticamente il progetto B quando risolve le dipendenze del progetto A. Quindi, quando eseguirai il progetto A, Eclipse assicurerà che stai utilizzando la versione più recente del progetto B.

Se usi Maven direttamente per eseguire il progetto A, Maven otterrà la versione del progetto B dal tuo repository locale. E quindi, devi installare il progetto B prima di eseguire A per avere l'ultima versione (mvn install B).