Comment ajouter des fichiers de configuration ou toute autre ressource dans mon pot à l'aide de gradle?
Ma structure de projet:
src/main/Java/com/perseus/.. --- Java packages (fichiers sources)
src/main/Java/config/*. xml --- Fichiers de configuration Spring
Structure de jar attendue:
com/perseus/.. --- Java packages (fichiers de classe)
config/*. xml --- Fichiers de configuration Spring
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 cette information pourrait être utile aux débutants.
Voici un exemple de tâche de mon '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
}
}
Déplacez les fichiers de configuration de src/main/Java
vers src/main/resources
.
Je suis tombé sur cet article en cherchant comment ajouter un répertoire supplémentaire pour les ressources. J'ai trouvé une solution qui peut être utile à quelqu'un. Voici ma configuration finale pour l'obtenir:
sourceSets {
main {
resources {
srcDirs "src/main/resources", "src/main/configs"
}
}
}
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
.
Ceci une partie de la documentation contient tous les détails
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 fichier JAR final avec les sources, ce qui a entraîné 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 fichier build.gradle
:
sourceSets.main.resources.srcDirs = [ "src/" ]
sourceSets.main.resources.includes = [ "**/*.png" ]
Il demande à Gradle de rechercher des ressources dans le dossier src
et de lui demander d'inclure uniquement les fichiers PNG.
EDIT: Attention, si vous utilisez Eclipse, cela cassera vos configurations d'exécution et vous obtiendrez une erreur main class not found
lorsque vous essayez d'exécuter votre programme. Pour résoudre ce problème, la seule solution que j'ai trouvée consiste à déplacer la ou les images dans un autre répertoire, res/
par exemple, et de le définir comme srcDirs
au lieu de src/
.
Sachez que le chemin sous src/main/resources doit correspondre au chemin de package de vos fichiers .class souhaitant accéder à la ressource. Voir ma réponse ici .