2011-08-18 33 views
7

Acabo de cambiar a Eclipse Indigo de Helios, y me he encontrado con algún problema al intentar ejecutar un proyecto web compatible con Maven en Tomcat 6 con WTP.Eclipse 3.7/Indigo m2e Problema de dependencia de integración WTP

Tengo el clásico problema de que Tomcat no ve las dependencias de Maven. En Helios, la solución fue añadir las dependencias de Maven a la Asamblea de despliegue a través de: Propiedades del proyecto -> Asamblea Despliegue -> Añadir 'Java Build Path Entradas' -> Dependencias Maven

Por desgracia, la opción de 'Build Path Java Las entradas 'no se incluyen en la lista, solo' Carpeta 'y' Proyecto '. No estoy seguro de si esto es intencional o si hay algún problema con mi configuración.

En un intento por eliminar los factores externos, estoy usando la siguiente configuración:

  • instalación nueva de Eclipse Indigo (Mac)
  • espacio de trabajo fresco
  • M2e WTP instalada la Integración a través de Eclipse mercado
  • Crear nuevo proyecto Maven
  • Añadir en algunas dependencias de Maven, más algo de código para usarlos
  • C proyecto onvert de forma facetada
  • Agregar faceta 'Módulo Web dinámica'
  • Maven> Configuración de la actualización del Proyecto
  • Añadir a un servidor Tomcat 6
  • Ejecutar en servidor

En este punto, veo obtener ClassNotFoundException relacionado con mis dependencias faltantes. Si ejecuto 'mvn war: war' e incluyo el directorio 'WEB-INF/lib' ensamblado en el Ensamblaje de Implementación del proyecto, entonces las dependencias se recogen correctamente, bien para una solución rápida, pero no es ideal.

La mayoría de los problemas que he leído acerca de problemas similares se debe a un módulo de integración de WTP que falta, pero ese no parece ser el problema para mí.

¿Estoy haciendo algo mal?

+0

¿El tipo de paquete del "nuevo proyecto de maven" es jar o war? – Raghuram

+0

El embalaje era JAR. He cambiado a WAR y el servidor ahora se despliega correctamente. Publique esto como una respuesta para que pueda marcarlo como correcto - Gracias. – sebrichards

+0

publicó el comentario como respuesta. – Raghuram

Respuesta

3

Parece que el tipo de embalaje del new maven project es jar. Si es así, puede cambiarlo a war y probarlo.

1

Aquí hay otra solución: fijo.archivo de ruta de clase

<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER"> 
      <attributes> 
-     <attribute name="org.eclipse.jst.component.nondependency" value=""/> 
+     <attribute name="org.eclipse.jst.component.dependency" value="/WEB-INF/lib"/> 
      </attributes> 
    </classpathentry> 
1

Haga clic derecho sobre el proyecto

  1. elegir Asamblea implantación> haga clic en Agregar

  2. Elija Java entradas Vía de construcción de ventana emergente, haga clic en Siguiente

  3. Usando Ctrl y mouse para seleccionar todas las lib mostradas

Después de eso, verá cambios en el archivo .classpath.

Publique su proyecto nuevamente en la pestaña del servidor.

+1

Estas configuraciones se pierden cada vez que ejecuta una actualización de Maven. El plugin m2e sobrescribe estas configuraciones, por lo que son bastante inútiles como lo es cuando se trata de aplicaciones web habilitadas para Maven ... –

Cuestiones relacionadas