¿Cómo hago para que mi proyecto Eclipse-Maven actualice automáticamente su classpath cuando cambio una dependencia en mi archivo pom.xml?

Estoy usando Eclipse Mars con Maven (v 3.3). Cuando actualizo una dependencia en my pom (cambio de versión), mi proyecto Eclipse-Maven no lo recoge, incluso cuando hago clic derecho en mi proyecto y selecciono “Maven” -> “Actualizar proyecto”. Lo sé porque No veo errores de comstackción en el editor de Eclipse Java que veo cuando construyo el proyecto en la línea de comando usando

mvn clean install 

Cuando elimino el proyecto del área de trabajo y lo vuelvo a importar, las cosas vuelven a la normalidad. Sin embargo, este es un proceso engorroso. ¿Cómo obtengo mi proyecto Maven-Eclipse para detectar automáticamente los cambios en mi pom y actualizar las bibliotecas del proyecto de manera apropiada?

Y sí, en el menú “Proyecto”, se marca “Crear automáticamente”.

Cuando importe el proyecto en Eclipse, use el soporte Maven integrado de Eclipse (aka, m2e). Recomiendo usar mvn eclipse:eclipse ya que no da los mejores resultados (como se ve). Maven es una herramienta de comstackción y gestión de la dependencia, no un IDE; esperar que administre cosas específicas de IDE es tonto, en mi opinión (me doy cuenta que el equipo de Maven piensa de manera diferente, que Maven debería ser responsable de administrar su IDE, pero eso es una tontería).

Por lo tanto, si tiene el proyecto disponible en su sistema, elimine cualquier archivo específico de Eclipse (normalmente solo .classpath , .project y folder .settings ), fueron generados por mvn eclipse:eclipse y no quiere que interfieran con el proceso de importación “adecuado” descrito aquí. Luego, dentro de Eclipse, use Archivo> Importar> Maven> Proyectos existentes de Maven para importar el proyecto. Eso debería dar como resultado una mejor integración entre Eclipse y maven, incluida la actualización automática de la ruta de comstackción de Eclipse cuando se cambia el pom.

Como una comprobación rápida, después de importar de esa manera, debería ver un grupo llamado Dependencias Maven en la pestaña Bibliotecas de la Ruta de comstackción del proyecto (en el cuadro de diálogo Propiedades). Me gusta esto:

enter image description here

Si desea que la configuración del proyecto de Eclipse se actualice automáticamente cada vez que se cambie el pom, hay una configuración (experimental) para eso en Preferencias > Maven . Sin embargo, tenga en cuenta que hacerlo podría no ser deseable, como se menciona en esta solicitud de funciones , es un proceso un tanto largo que toca un montón de cosas en el Proyecto Eclipse; hacerlo automáticamente en cada cambio de pom.xml podría terminar siendo más problemático de lo que vale.

enter image description here

Tres comprobaciones obligatorias que debe hacer para la actualización automática en su classpath

  1. Su repository no está sincronizado con su Eclipse IDE. Compruebe la configuración a continuación en su IDE. Maven externo
  2. Haga clic con el botón derecho en cualquier POM.xml de su IDE y busque el perfil de Maven que se debe activar automáticamente. También no se debe habilitar la checkbox Sin conexión y Forzar actualización. Por favor, consulte la imagen a continuación. autoactivado
  3. Siempre verifique la configuración de usuario que debe reflejar su configuración de maven local.xml, como se muestra en la figura a continuación. enter image description here
  4. Después de realizar todas estas comprobaciones, actualice su espacio de trabajo de Eclipse para reflejar estos cambios.

Eclipse debería actualizar su classpath. Si no es así, eso implica que algo va mal.

Es difícil decir cuál podría ser el problema exactamente sin saber más acerca del pom.xml de su proyecto. Puede que sea necesaria más información para resolver el problema, pero haré una puñalada en la oscuridad:

Abra el archivo .project en la carpeta raíz de su proyecto y verifique el orden de constructores y naturalezas allí. Es posible que otra naturaleza en el proyecto también esté causando la falla de maven2Nature. Mueva la naturaleza de maven y vea si eso ayuda.

Alternativamente, podría estar pensando que Eclipse no actualiza sus dependencias porque no agrega algunos indicadores de error en el proyecto que deberían estar allí con nuevas dependencias. Si ese es el caso, intente limpiar el proyecto actual (proyecto> limpiar …). Maven en Eclipse no desencadena necesariamente una reconstrucción completa cuando se actualizan las dependencias.

Si nada de esto funciona, cerrar / abrir el proyecto podría resolver el problema más rápido que volver a importar.

Lo que escribiste, debería funcionar. ¿Has verificado esto?

  • Cómo se mvn install “puro” desde la terminal, vea sus cambios en POM?

  • tal vez algún plugin de Maybe tenga errores, almacene algunas dependencias en el target y se mvn clean install

  • puede ejecutar Eclipse en un nuevo espacio de trabajo e importar su proyecto allí, a veces ayuda en caso de problemas tan extraños

  • en lugar de importar el proyecto Maven a Eclipse a través de m2eclipse , puedes intentar crear archivos Eclipse a través del viejo mvn eclipse:eclipse y ver qué pasa luego

  • ¿Funciona bien cuando intentas importar tu proyecto Maven a otro IDE, por ejemplo, IntelliJ Community Edition gratis?

Como último recurso, puede eliminar su instalación actual de Eclipse e instalar una nueva versión. Cuando agrega varios complementos, pueden interferir entre sí y crear un comportamiento extraño. Después de hacerlo, no importe su proyecto Maven en su espacio de trabajo, sino que cree uno nuevo y copie y pegue los archivos que tenía.