gradle build.gradle

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 .