Agregue recursos, configure archivos a su jar usando gradle
build.gradle (5)
¿Cómo agrego archivos de configuración o cualquier otro recurso en mi jar usando gradle?
Mi estructura de proyecto:
src / main / java / com / perseus / .. --- Paquetes Java (archivos fuente)
src / main / java / config / *. xml --- Archivos de configuración de Spring
Estructura de jar esperada:
com / perseus / .. --- Paquetes Java (archivos de clase)
config / *. xml --- Archivos de configuración de Spring
De forma predeterminada, todos los archivos que agregue a src/main/resources
se incluirán en el jar.
Si necesita cambiar ese comportamiento por cualquier razón, puede hacerlo configurando los conjuntos de sourceSets
.
This parte de la documentación tiene todos los detalles
Gracias chicos, estaba migrando un proyecto existente a Gradle y no me gustó mucho la idea de cambiar la estructura del proyecto.
Lo he descubierto, pensé que esta información podría ser útil para los principiantes.
Aquí hay una tarea de muestra de mi ''build.gradle'':
version = ''1.0.0''
jar {
baseName = ''analytics''
from(''src/main/java'') {
include ''config/**/*.xml''
}
manifest {
attributes ''Implementation-Title'': ''Analytics Library'', ''Implementation-Version'': version
}
}
Me encontré con esta publicación buscando cómo agregar un directorio adicional para los recursos. Encontré una solución que puede ser útil para alguien. Aquí está mi configuración final para obtener eso:
sourceSets {
main {
resources {
srcDirs "src/main/resources", "src/main/configs"
}
}
}
Tuve el mismo problema. Tenía un archivo PNG en un paquete de Java y no se exportó en el JAR final junto con las fuentes, lo que causó que la aplicación fallara al iniciarse (archivo no encontrado).
Ninguna de las respuestas anteriores resolvió mi problema, pero encontré la solución en los foros de Gradle. build.gradle
siguiente a mi archivo build.gradle
:
sourceSets.main.resources.srcDirs = [ "src/" ]
sourceSets.main.resources.includes = [ "**/*.png" ]
Le dice a Gradle que busque recursos en la carpeta src
y le pide que incluya solo archivos PNG.
EDITAR: Tenga en cuenta que si está utilizando Eclipse, se romperán las configuraciones de ejecución y obtendrá un error de main class not found
al intentar ejecutar su programa. Para solucionarlo, la única solución que he encontrado es mover las imágenes a otro directorio, res/
por ejemplo, y establecerlo como srcDirs
lugar de src/
.
Mueva los archivos de configuración de src/main/java
a src/main/resources
.