Las dependencias de Maven no son visibles en WEB-INF / lib

Tengo este extraño problema al hacer mi proyecto basado en Maven. Creé un nuevo proyecto Maven en Eclipse y habilité las facetas de Dynamic Web. Pero durante el tiempo de ejecución ahora arroja ClassNotFoundException porque las dependencias de Maven no se copian en el directorio WEB-INF/lib . Incluso intenté agregar la sección de copias dependientes en POM, pero no ayudó.

Alguien aquí parecía haber resuelto esto de la manera correcta, pero supongo que olvidó mencionar la solución 🙁

Esto no debería tener nada que ver con eclipse y m2eclipse, y opcionalmente para una mejor compatibilidad – m2e-wtp . Además, no necesita copiar las dependencias. Aquí hay algunas posibles razones:

  • deberías invocar el mvn package (o hacer clic con el botón derecho del ratón en> maven> paquete) y obtener un archivo de guerra; el (en el pom) debe ser una war
  • sus dependencias deben estar con el scope predeterminado (si se provided o test que no se incluirán en el archivo)
  • si está ejecutando el proyecto como proyecto web dynamic en un servidor dentro de eclipse, entonces debe abrir las propiedades del proyecto (clic con el botón derecho> propiedades) y seleccionar “Ensamblaje de implementación”. Haga clic en “agregar”, seleccione “crear entradas de ruta” y seleccione “dependencias maven”. Esto indicará a WTP que envíe las dependencias maven al directorio del servidor.

Primero instale Maven Integration For Eclipse WTP (Ayuda-> Eclipse Marketplace)

Luego, en el pom.xml de tu proyecto web simplemente agrega:

  war 

Después de eso, simplemente haga clic derecho en el proyecto, Maven -> Actualizar proyecto, que debe agregar Automáticamente las Dependencias de Maven para usted en el Ensamblaje de implementación.

Haga clic con el botón derecho en el proyecto> Maven> Actualizar proyecto de Maven> Aceptar me lo arregló

Compruebe la propiedad de ensamblaje de implementación del proyecto. He visto algunos mvn eclipse:eclipse proyectos Eclipse generados por eclipse a veces tienen los activos desplegados en la ubicación incorrecta. Por lo que puedo recordar, la nueva Asamblea de Implementación tuvo algunos problemas con las versiones anteriores de Eclipse 3.6 (Helios).

Acabo de hacer maven -> proyecto de actualización funcionó para mí.

quieres usar el plugin copy-dependencies

ver esta publicación y los documentos

Si observa su implementación y ve que WEB-Inf / lib está vacío de sus dependencias Maven, entonces asegurar que esas dependencias Maven estén en su ensamblado de implementación es crucial como se menciona en la respuesta elegida.

Sin embargo, desconfíe de Eclipse y no actualice todo, incluso con una actualización de Maven. Si limpia, reconstruye y vuelve a desplegar y todavía no ve la carpeta lib que se está llenando intente eliminar y volver a agregar la aplicación a las implementaciones del servidor a través de Servidores> Agregar y quitar.

Esto desatascó el sistema para mí.

Haga clic con el botón derecho del mouse en proyecto -> Ensamblaje de despliegue: vea si tiene las Dependencias de Maven y todas las demás allí. De lo contrario, haga clic derecho en el proyecto -> Maven -> Habilitar la resolución del espacio de trabajo

(tal vez entonces Maven -> Actualizar Proyecto, pero luego mire de nuevo en “Asamblea de Implementación” y vea lo que tiene.) Esto lo resolvió (¡por fin!) para mí.