2009-11-26 10 views
9

Ho un progetto (generato da un modello AppFuse) che richiede Maven 2.2.1. Così ho aggiornato a questo (dalla versione 2.1.0) e impostato il mio percorso e le mie variabili env M2_HOME e .Eclipse non crederà che io abbia Maven 2.2.1

Quindi ho eseguito mvn eclipse:eclipse e ho importato il progetto in Eclipse (Galileo).

Tuttavia, nella lista dei problemi per il progetto (e in cima l'editor pom.xml GUI) si dice:

Impossibile costruire progetto '/ export/persone/Clegg/dati/Postazione di lavoro/funcserve/pom.xml; Richiede Maven versione 2.2.1

Questa persiste se ho impostato Eclipse di usare la sua attuazione Maven embedded, o la 2.2.1 installazione esterna, in Preferenze -> Maven -> Installazioni di dialogo.

Ho provato a chiudere e riaprire il progetto, a reindicizzare il repository, a pulire il progetto, a riavviare l'IDE, a disconnettermi e ricollegarlo, tutto ciò a cui riesco a pensare! Ma Eclipse ancora non crederà che io abbia Maven 2.2.1.

Ho appena aggiornato un plug-in in modo da avere l'ultima versione di Maven Integration per Eclipse - 0.9.8.200905041414.

Qualcuno sa come convincere Eclipse I davvero fare ha la versione giusta di Maven? È come se avesse registrato la versione precedente da qualche altra parte e non prestasse attenzione alle mie modifiche :-(

risposta

8

Eclipse consente di specificare un'installazione Maven esterna. Ma c'è un problema. :( Dai un'occhiata a Windows> Preferenze> Maven> Installazioni.

verrà visualizzato un messaggio come questo:

Note: Embedded runtime is always used for dependency resolution, but does 
not use global settings when it is used to launch Maven. 
To learn more, visit the maven web page. 

Traducendo a inglese, vuol dire che Eclipse continuerà a impiegare la sua istanza Maven interna al fine di eseguire alcune operazioni. Quando si esegue "Esegui come> installazione di Maven" verrà eseguito lo script pom.xml che utilizza l'istanza Maven esterna specificata, ma quando Eclipse esegue alcuni dei suoi componenti interni, continuerà a utilizzare l'istanza Maven incorporata, qualunque sia la versione.

(modificato) Per quanto ne so, quando si installa M2Eclipse si sta definendo implicitamente quale "istanza interna Maven" si avrà, che è esattamente quella confezionata dal plugin. Nella configurazione del plugin, è possibile aggiungere istanze esterne Maven indicando dove sono installati.

+0

Ok, questo ha senso ora. Purtroppo l'istanza incorporata di m2eclipse non supporta ancora Maven 2.2.1 (http://m2eclipse.sonatype.org/project-faq.html#16) e poiché utilizza sempre la versione incorporata per il builder del progetto Maven (http: // m2eclipse.sonatype.org/project-faq.html#17) questo significa (presumibilmente) la build incrementale e la compilazione automatica non sono disponibili in questi casi. (Forse potrebbe essere aggirato con un costruttore personalizzato?) Questo è un mio caso se non leggo abbastanza attentamente le FAQ di m2eclipse, sebbene il punto saliente (il secondo link) sia nascosto in una domanda non correlata. Grazie! –

+0

PS Sto già usando Galileo (nonostante GanymedeWorkspace nel percorso) e l'ultimo m2eclipse. Modifica la domanda per renderla più chiara. –

0

Una fonte comune di problemi (di questo tipo) è se modifichi le preferenze globali e non ricordi o sappia che hai abilitato alcune impostazioni specifiche del progetto, almeno è una possibilità che l'impostazione globale sia ora impostata per utilizzare l'esperto esterno ma l'impostazione del progetto è ancora impostata su "incorporato"

+0

La mia pagina delle impostazioni del progetto per Maven non mi consente di impostare l'istanza Maven. –

0

M2Eclipse utilizza un'istanza di Maven incorporata, non la istanza di Maven che hai installato sul tuo sistema

+0

m2eclipse può utilizzare un'istanza di Maven incorporata ** o ** un'installazione di Maven "esterna" come riporta l'OP. –

+0

come faccio a capire cos'è la versione integrata? – momomo

0

Hai provato a passare da uno spazio di lavoro?

È ancora possibile fare riferimento allo stesso progetto nel nuovo spazio di lavoro. Ciò fornirebbe più reset che puoi in termini di impostazioni interne di eclissi.

+0

Purtroppo, anche con uno spazio di lavoro completamente nuovo, accade la stessa cosa. –

0

Provare a creare il progetto Eclipse con il progetto mvn: m2eclipse o utilizzare l'opzione di importazione Maven sotto il progetto di importazione.

0

Utilizzando m2eclipse, il mio fallback in queste situazioni è fare Maven> Dipendenze di aggiornamento e quindi Maven> Aggiorna configurazione progetto. Il primo è che io sono supersticious, ma il secondo riscriverà .project e .classpath.

Come dice Pascal, m2eclipse può anche essere puntato su un'istanza esterna. L'ho fatto in passato, anche se non al 2.2.1.

Dan

3

Se si utilizza una versione recente m2eclipse, si può provare anche questo:

<prerequisites> 
    <maven>>=2.2.1</maven> 
</prerequisites> 

Avviso del maggiore di in > = 2.2.1. Funziona bene per me.

0

Ho avuto lo stesso problema. Risolto il problema riavviando il sistema, perché ogni volta che si modifica il "Percorso" nelle variabili di ambiente è necessario riavviare il sistema o altrimenti non selezionare le modifiche.

Problemi correlati