usar proyecto desde crear consola como bootstrap application aplicacion java eclipse java-ee web-project

proyecto - java bootstrap web application



Dependencias del proyecto web Eclipse (6)

Esta pregunta es sobre el desarrollo de Eclipse, estoy tratando de crear una aplicación web en Eclipse, el problema es que no obtengo los archivos de las dependencias del archivo desplegado.

Creé un nuevo proyecto web dinámico y lo vinculé a otro proyecto de Java. El proyecto Java hace referencia a algunos jarrones de terceros (por ejemplo, Spring jars) pero, por alguna razón, al publicar el proyecto web solo obtengo el jar del proyecto Java en el directorio lib de war, sin las dependencias del proyecto Java (por ejemplo, Spring).

En otras palabras, tengo el proyecto A (proyecto web) que depende del proyecto B (Proyecto Java), el proyecto B depende de los contenedores de Spring. Cuando publico el proyecto web como una guerra para JBoss, solo el proyecto B se empaqueta en el frasco (sin frascos de primavera)

Sé que puedo hacerlo con hormiga, incluso tengo build.xml para construir toda la aplicación, pero pensé que eclipse también puede realizar la tarea de empaquetado para mí.

Agregué el proyecto de Java a las dependencias del módulo de Java EE en el proyecto web.

¿Debo usar la opción de exportación en las propiedades de ruta de compilación del proyecto Java? ¿Debería agregar las dependencias del proyecto Java al proyecto web también?

¿Qué estoy haciendo mal?

Editar : estoy usando Eclipse 3.5.1


Agregué el proyecto de Java a las dependencias del módulo de Java EE en el proyecto web.

Si el propósito es tomar las dependencias (leer: archivos JAR / proyectos / etc) del otro proyecto en el classpath de tiempo de ejecución del proyecto actual , entonces solo de esa manera no funciona. Necesita configurar el otro proyecto para exportar sus dependencias. Se realiza mediante la pestaña Orden y exportación en las propiedades de la ruta de compilación. Espero que esto ayude.


  1. Ir a las propiedades del proyecto web.
  2. Ensamblaje de implementación (izquierda).
  3. Agregar> Seleccionar proyecto> Seleccionar proyecto de lib> Verificar "Ensamblar proyectos en la carpeta WEB-INF / lib de la aplicación web" si no está marcada> Finalizar.
  4. Ruta de compilación Java (izquierda)> Pestaña Proyectos> Agregar ...> Seleccione su proyecto lib> Aceptar
  5. Ruta de creación de Java (izquierda)> Pestaña Ordenar y exportar> Seleccione su proyecto lib.
  6. Salvar
  7. Ahora funciona.

Debe empaquetar su aplicación web en un archivo WAR antes de implementarlo. Debe haber una manera de decirle a Eclipse qué archivos JAR le gustaría poner en el directorio WEB-INF / lib. De lo contrario, escriba Ant build.xml que lo haga por usted.

No debería tener que modificar ninguna variable de classpath en su entorno o en el servidor de la aplicación. La forma correcta de hacerlo es crear un archivo WAR adecuado.

ACTUALIZACIÓN: vuelvo a leer su pregunta:

pero por alguna razón, cuando publico el proyecto web, solo obtengo el jar del proyecto java en el directorio lib de JBoss, sin sus dependencias jar (egSpring).

¿Qué significa esto? No debería poner nada en el directorio JBOSS / lib. El objetivo de un archivo WAR es que es un artefacto que contiene todas sus dependencias. Si intenta escribir cosas en el directorio JBOSS / lib, lo está haciendo mal.

El archivo WAR debe ir al dominio que configuró. No es necesario modificar el servidor de la aplicación.


Sé que han pasado cuatro años desde la última publicación, y tal vez esta opción no estaba disponible en ese momento, pero esto es lo que funcionó para mí:

  1. Ir a Proyecto web-> Propiedades
  2. Asamblea de despliegue
  3. Use el botón ''Agregar'' para agregar su dependencia de proyecto
  4. Vaya a Proyecto-> Propiedades para el proyecto del que depende
  5. Deployment Assembly
  6. Use el botón "Agregar" para agregar las dependencias de la biblioteca de tiempo de ejecución del proyecto
  7. Proyecto web-> Ejecutar como ..-> Ejecutar en el servidor y funcionó para mí

Tenga en cuenta que los pasos 4 a 6 significarán que si está utilizando eclipse para compilar su archivo jar, ahora incluirá sus bibliotecas dependientes en ese contenedor.

Gracias a rodgarcialima por ayudarme a llegar al paso 3.


Si te entiendo correctamente, el problema es que si usas el proyecto A, que a su vez depende del proyecto B, no obtienes los artefactos del proyecto B, sino solo A.

El problema es que su proyecto debe listar TODAS las cosas que necesita en Propiedades -> Dependencias del módulo Java EE, que es un mecanismo separado de las exportaciones habituales del proyecto. Probablemente necesites hacer algo de experimentación.


También tome nota de este error informado en Eclipse WTP, que a veces evita que sus dependencias se implementen en WEB-INF / lib, incluso si configuró todo correctamente. Suspiro.

Error 312897: la función de implementación no implementa dependencias de classpath.

Tal como lo entiendo, para usar un JAR en tiempo de compilación en Eclipse y asegurarme de que también esté disponible en tiempo de ejecución en el servidor de aplicaciones, usted:

  • Agregue el JAR a su ruta de compilación
  • Marque el JAR como una dependencia del módulo EE exportado

Si necesita los JAR necesarios para otro proyecto que esté utilizando, los incluiría personalmente como dependencias explícitas en la ruta de compilación y también los agregaría a las dependencias del módulo exportado.

Pero no tomes mi respuesta al pie de la letra ya que me encontré con esta publicación mientras buscaba el motivo por el que obtengo los errores NoClassDefFound en mi proyecto de Eclipse ...;)