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.

Était-ce utile?

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.)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top