J'ai un script de gradle complexe qui englobe une charge de fonctionnalités autour de la construction et du déploiement d'un certain nombre de projets netbeans dans un certain nombre d'environnements.
Le script fonctionne très bien, mais essentiellement, tout est configuré à travers une demi-douzaine de cartes contenant des informations sur le projet et l'environnement.
Je veux résumer les tâches dans un autre fichier, afin de pouvoir 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 principales pour un certain nombre de projets et configurer ces projets avec un simple ensemble de cartes.
Quelqu'un peut-il me dire comment je peux importer un fichier gradle dans un autre, d'une manière similaire à la tâche d'Ant? J'ai parcouru les documents de Gradle en vain jusqu'à présent.
Information additionnelle
Après la réponse de Tom ci-dessous, j'ai pensé essayer de clarifier exactement ce que je voulais dire.
Fondamentalement, j'ai un script gradle qui exécute un certain nombre de sous-projets. Cependant, les sous-projets sont tous des projets Netbeans, et sont livrés avec leurs propres scripts de construction de fourmis, donc j'ai des tâches en gradle pour appeler chacun d'entre eux.
Mon problème est que j'ai une 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 beaucoup de ces sortes d'extraits de génération de tâches, et tous sont génériques - ils dépendent entièrement de la configuration dans 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âche générique 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 et Netbeans.
apply from
exécute immédiatement les tâches externes. Cela peut ne pas être préférable dans la logique d'exécution (c'est-à-dire que je voudrais exécuter les tâches quand je le souhaite, pas tout de suite).
apply from
exécute immédiatement les tâches externes. Ne vous laissez pas induire en erreur. Les tâches externes sont configurées, non exécutées.