J'ai un gradle script complexe qui enveloppe une charge de fonctionnalité autour de la construction et du déploiement d'un certain nombre de projets netbeans à un certain nombre d'environnements.
Le script fonctionne très bien, mais en substance, tout est configuré à travers une demi-douzaine de cartes contenant des informations sur le projet et l'environnement.
Je veux isoler les tâches dans un autre fichier, de sorte que je puisse simplement définir mes cartes dans un simple fichier de construction, et importer les tâches de l'autre fichier. De cette façon, je peux utiliser les mêmes tâches de base pour un certain nombre de projets et configurer ces projets avec un simple ensemble de cartes.
Quelqu'un peut-il me dire comment importer un fichier gradle dans un autre, d'une manière similaire à la tâche de Ant ? J'ai parcouru la documentation de Gradle sans succès jusqu'à présent.
Informations complémentaires
Après la réponse de Tom ci-dessous, j'ai pensé que je devais essayer de clarifier ce que je veux dire exactement.
En gros, j'ai un gradle script qui exécute un certain nombre de sous-projets. Cependant, les sous-projets sont tous des projets Netbeans, et viennent avec leurs propres scripts de construction ant, donc j'ai des tâches dans gradle pour appeler chacun d'eux.
Mon problème est que j'ai une certaine configuration en haut du fichier, telle que :
projects = [
[name:"MySubproject1", shortname: "sub1", env:"mainEnv", cvs_module="mod1"],
[name:"MySubproject2", shortname: "sub2", env:"altEnv", cvs_module="mod2"]
]
Je génère ensuite des tâches telles que :
projects.each({
task "checkout_$it.shortname" << {
// Code to for example check module out from cvs using config from 'it'.
}
})
J'ai de nombreux snippets de génération de tâches de ce type, et tous sont génériques - ils dépendent entièrement de la configuration de la liste des projets.
Donc ce que je veux, c'est un moyen de mettre cela dans un script séparé et de l'importer de la manière suivante :
projects = [
[name:"MySubproject1", shortname: "sub1", env:"mainEnv", cvs_module="mod1"],
[name:"MySubproject2", shortname: "sub2", env:"altEnv", cvs_module="mod2"]
]
import("tasks.gradle") // This will import and run the script so that all tasks are generated for the projects given above.
Ainsi, dans cet exemple, tasks.gradle contiendra tout le code de génération de tâches génériques et sera exécuté pour les projets définis dans le fichier build.gradle principal. De cette façon, tasks.gradle est un fichier qui peut être utilisé par tous les grands projets qui consistent en un certain nombre de sous-projets avec des fichiers de construction Netbeans ant.