Étendre la Gradle tâche et de remplacer la configuration
-
21-12-2019 - |
Question
J'aimerais définir une nouvelle tâche appelée dbStatus
qui appelle (ou s'étend?) run
, et juste remplace la args
de la propriété.
apply plugin: 'application'
run {
args "server", "service.yml"
}
task(dbStatus, type: run) {
args "db", "status", "service.yml
}
Cela ne fonctionne pas parce que "run"
n'est pas une tâche valide de classe.Est-il un moyen rapide pour étendre une tâche et de substituer à la propriété?
Mise à JOUR:Résolution
Malheureusement, j'ai dû il suffit de définir une nouvelle marque JavaExec
tâche, et de recréer la logique qui run
est configuré pour le faire.Voici ce que j'ai trouvé:
task(dbStatus, type: JavaExec) {
main mainClassName
classpath sourceSets.main.runtimeClasspath
args "db", "status", "service.yml"
}
Je ne pense pas que c'est exactement le même que run
, car il n'est pas en cours d'exécution à l'encontre de la construction jar
Je ne crois pas, mais il travaille pour mes fins.
La solution
Les tâches ne peuvent pas être "étendue" de cette façon.Au lieu de cela, déclarer une autre tâche et de le configurer en tant que de besoin.(Il est commun de configurer plusieurs tâches à la fois, pour éviter la duplication de code.)