Si ejecuto el paquete mvn clean, me parece que este archivo no se copia en el archivo war de la carpeta de destino.
A continuación, los archivos de asignación no son, probablemente, en el directorio de recursos predeterminado (src/main/resources
), pero en el directorio de origen (src/main/java
) y Maven no va a copiar en el directorio de resultados de generación por defecto.
Sin embargo, si solo limpio mvn y luego voy a eclipsar y selecciono Limpiar en el menú Proyecto, el archivo se envía al lugar apropiado en el destino. Luego puedo hacer el paquete mvn para empaquetar exitosamente un archivo war que tenga acceso a la base de datos.
Bajo Eclipse, supongo que los archivos de los directorios de fuentes se copian en el directorio de salida de compilación, incluidos los archivos de recursos de la aplicación. Entonces, esto de alguna manera "engaña" a Maven cuando ejecuta package
después del paso de limpieza de Eclipse. Pero esto realmente no importa, el maestro es Maven, todo lo demás es irrelevante.
Para solucionarlo, mueva sus archivos de asignación a src/main/resources
. O mantenerlos en src/main/java
y declarar el directorio de fuentes como un directorio de recursos "extra":
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
</resource>
<resource>
<directory>src/main/java</directory>
<excludes>
<exclude>**/*.java</exclude>
</excludes>
</resource>
</resources>
</build>
Algunas personas hacen esto, yo prefiero usar directorios separados.
¿Estás seguro de que tu archivo xml está en la carpeta de recursos? – mhshams