2011-02-08 11 views
8

Soy relativamente nuevo en Java, así que espero que esta no sea una pregunta tonta.Anotaciones de auto-cableado en clases de jar dependientes

Tengo un proyecto web en Eclipse que estoy intentando implementar en Tomcat. Tengo dos proyectos dependientes en Eclipse que se compilan en archivos .jar y se implementan en el directorio/WEB-INF/lib.

Esto está bien, pero desafortunadamente Spring no busca anotaciones en dependencias a menos que los archivos de clase de .jars se extraigan en el directorio/WEB-INF/classes.

¿Hay alguna manera fácil de realizar esta extracción en el momento de la compilación? Estoy usando Maven. He escrito un archivo por lotes por el momento para hacer esto (estoy desarrollando en Windows, implementando en Ubuntu)

Tengo preguntas sobre cómo automatizar esto para la implementación del servidor, sin embargo, estoy haciendo algo mal ? Seguramente no soy el único que lucha con este problema.

Respuesta

10

De acuerdo con esta Spring issue, si va a crear archivos JAR en Eclipse usando el Exportar ...> Java> archivo JAR asistente, entonces usted tiene que comprobar el Añadir entradas de directorio casilla (sin marcar por defecto) para el escaneo de componentes de Spring para encontrar componentes en los archivos JAR.

+0

+1, buen hallazgo que eclipse hace eso por defecto. – Bozho

6

Creo primavera escanea toda la ruta de clases, sólo hay que proporcionar:

<context:component-scan base-package="org.example"/> 

hay una nota in the docs:

La exploración de los paquetes de rutas de clases requiere la presencia de entradas de directorio correspondiente de la ruta de clases Cuando construye JAR con Ant, asegúrese de no activar el cambio de solo archivos de la tarea JAR.

+1

hecho ............ – Bozho

0

Ya que menciona que está utilizando anotaciones, así

<context:annotation-config/> 
<context:component-scan base-package="org.example"/> 

es lo que necesita en su ejemplo * archivo .xml de

+0

no es necesario cuando se usa el contexto: componente-scan ya que el componente-scan también escanea en busca de anotaciones – wilco

0

@Chin Huang,

muchas gracias por su respuesta .

Estaba generando el .jar usando Eclipse y nunca se me pasó por la mente que ese podría ser el problema.

Genere el .Jar usando ANT y eso solucionó el problema. A veces, tener demasiadas opciones te confunde, este fue uno de esos casos.

Cuestiones relacionadas