Comment ajouter des fichiers de configuration ou d'autres ressources dans mon fichier jar en utilisant gradle?
Ma structure de projet:
src / main / java / com / perseus / .. --- Paquets Java (fichiers source)
src / main / java / config / *. xml --- Fichiers de configuration Spring
Structure de pot attendue:
com / perseus / .. --- Paquets Java (fichiers de classe)
config / *. xml --- Fichiers de configuration Spring
gradle
build.gradle
Pritesh Mhatre
la source
la source
Déplacez les fichiers de configuration de
src/main/java
verssrc/main/resources
.la source
Merci les gars, je migrais un projet existant vers Gradle et je n'aimais pas trop l'idée de changer la structure du projet.
Je l'ai compris, j'ai pensé que ces informations pourraient être utiles aux débutants.
Voici un exemple de tâche de mon 'build.gradle':
la source
sourceSets.main.resources { srcDirs = ["src/main/java"]; exclude "**/*.java" }
.Par défaut, tous les fichiers que vous ajoutez
src/main/resources
seront inclus dans le fichier jar.Si vous devez modifier ce comportement pour une raison quelconque, vous pouvez le faire en configurant
sourceSets
.Cette partie de la documentation contient tous les détails
la source
.../resources/
est inclus au lieu du répertoire de ressources avec le contenu?J'ai rencontré le même problème. J'avais un fichier PNG dans un package Java et il n'a pas été exporté dans le JAR final avec les sources, ce qui a provoqué le blocage de l'application au démarrage (fichier introuvable).
Aucune des réponses ci-dessus n'a résolu mon problème mais j'ai trouvé la solution sur les forums Gradle. J'ai ajouté ce qui suit à mon
build.gradle
fichier:Il indique à Gradle de rechercher des ressources dans le
src
dossier et lui demande de n'inclure que les fichiers PNG.EDIT: sachez que si vous utilisez Eclipse, cela cassera vos configurations d'exécution et vous obtiendrez une
main class not found
erreur lorsque vous essayez d'exécuter votre programme. Pour résoudre ce problème, la seule solution que j'ai trouvée est de déplacer la ou les images vers un autre répertoire,res/
par exemple, et de la définir commesrcDirs
au lieu desrc/
.la source
+=
opérateur pour ajouter messourceSets.main.resources.srcDirs += [ "src/main/java" ]
Sachez que le chemin sous src / main / resources doit correspondre au chemin du package de vos fichiers .class souhaitant accéder à la ressource. Voir ma réponse ici .
la source