2009-11-26 18 views
9

Tengo un proyecto (construido a partir de una plantilla de AppFuse) que requiere Maven 2.2.1. Así que actualicé a este (desde 2.1.0) y establecí mi ruta y mis variables de env M2_HOME y MAVEN_HOME.Eclipse no creerá que tengo Maven 2.2.1

Luego ejecuté mvn eclipse:eclipse e importé el proyecto a Eclipse (Galileo).

Sin embargo, en la lista de problemas para el proyecto (y en la parte superior del editor de interfaz gráfica de usuario pom.xml) que dice:

No se puede generar el proyecto '/ exportación/personas/Clegg/datos/Workspace/funcserve/pom.xml; Requiere Maven versión 2.2.1

Esta persiste si puedo configurar Eclipse para utilizar su ejecución Maven incorporado o la instalación externa 2.2.1, en las Preferencias -> Maven -> Instalaciones de diálogo.

He intentado cerrar y volver a abrir el proyecto, reindexar el repositorio, limpiar el proyecto, reiniciar el IDE, cerrar sesión y volver a entrar, ¡todo lo que puedo pensar! Pero Eclipse todavía no creerá que tengo Maven 2.2.1.

Acabo de hacer una actualización de complemento, así que tengo la última versión de Maven Integration for Eclipse - 0.9.8.200905041414.

¿Alguien sabe cómo convencer a Eclipse I realmente hacer tener la versión correcta de Maven? Es como si estuviera grabada la versión anterior en otro lugar y no prestará atención a mis cambios :-(

Respuesta

8

Eclipse le permite especificar una instalación de Maven externa. Pero hay una trampa. :( Eche un vistazo a Windows> Preferencias> Maven> Instalaciones.

verá un mensaje como este:

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. 

Traduciendo al Inglés, significa que Eclipse continuará empleando su instancia Maven interna con el fin de realizar algunas tareas. Cuando ejecutas "Run As> maven install", ejecutará tu script pom.xml empleando la instancia Maven externa que has especificado, pero cuando Eclipse realice algunas de sus funciones internas, continuará utilizando la instancia Maven incrustada, independientemente de la versión que sea.

(corregido) Por lo que sé, cuando instala M2Eclipse está implícitamente definiendo qué "instancia Maven interna" tendrá, que es exactamente la que viene con el complemento. En la configuración del complemento, puede agregar instancias Maven externas diciendo dónde están instaladas.

+0

Bien, esto tiene sentido ahora. Lamentablemente, la instancia incrustada de m2eclipse aún no es compatible con Maven 2.2.1 (http://m2eclipse.sonatype.org/project-faq.html#16) y porque siempre usa la versión incorporada para el creador del proyecto Maven (http: // m2eclipse.sonatype.org/project-faq.html#17) esto significa (presumiblemente) la construcción incremental y la autoconstrucción no están disponibles en estos casos. (¿Se podría solucionar el problema con un creador personalizado?) Este es un caso en el que no leo las preguntas frecuentes de m2eclipse lo suficiente, aunque el punto principal (el segundo enlace) está oculto en una pregunta no relacionada. ¡Gracias! –

+0

PD Ya estoy usando Galileo (a pesar de GanymedeWorkspace en la ruta) y el último m2eclipse. Editará la pregunta para aclarar esto. –

0

Una fuente común de problemas (de este tipo) es si cambia las preferencias globales y no recuerda ni sabe que Ha habilitado algunas configuraciones específicas del proyecto. Al menos existe la posibilidad de que la configuración global ahora esté configurada para usar el experto externo pero la configuración del proyecto aún está configurada como 'incrustada'.

+0

La página de configuración de mi proyecto para Maven no me permite configurar la instancia de Maven. –

0

M2Eclipse usa una instancia maven integrada, no la instancia maven que ha instalado en su sistema.

+0

m2eclipse puede usar una instancia maven incrustada ** o ** una instalación maven "externa" como informa el OP. –

+0

¿cómo averiguo cuál es la versión incrustada? – momomo

0

¿Ha intentado cambiar los espacios de trabajo?

Aún puede hacer referencia al mismo proyecto en el nuevo espacio de trabajo. Esto proporcionaría la mayor cantidad de restablecimiento que puede hacer en términos de configuraciones internas de eclipses.

+0

Lamentablemente, incluso con un espacio de trabajo completamente nuevo, sucede lo mismo. –

0

Intente crear su proyecto eclipse con proyecto mvn: m2eclipse o utilice la opción de importación maven en proyecto de importación.

0

Usando m2eclipse, mi recuperación en estas situaciones es hacer Maven> Actualizar dependencias y luego Maven> Actualizar configuración del proyecto. El primero es que soy supersticioso, pero el segundo reescribirá .project y .classpath.

Como dice Pascal about, m2eclipse también se puede señalar en una instancia externa. He hecho esto en el pasado, aunque no en 2.2.1.

Dan

3

Si está utilizando una versión reciente m2eclipse, puede intentar esto también:

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

Aviso del mayor que en > = 2.2.1. Funciona bien para mí.

0

Tengo el mismo problema. Se resolvió reiniciando el sistema porque cada vez que cambie la 'Ruta' en las variables de entorno, debe reiniciar el sistema o, si no, no elegir los cambios.

Cuestiones relacionadas