Estendi la composizione graduale esistente e la configurazione override
-
21-12-2019 - |
Domanda
Mi piacerebbe definire una nuova attività chiamata dbStatus
che chiama (o si estende?) run
e sovrascrive la proprietà args
.
apply plugin: 'application'
run {
args "server", "service.yml"
}
task(dbStatus, type: run) {
args "db", "status", "service.yml
}
.
Questo non funziona perché "run"
non è una classe di attività valida.C'è un modo rapido per estendere un compito e sovrascrivere una proprietà?
Aggiornamento: risoluzione
Purtroppo dovevo semplicemente definire un compito JavaExec
di zecca e ricreare la logica che run
è configurato da fare.Ecco cosa ho trovato:
task(dbStatus, type: JavaExec) {
main mainClassName
classpath sourceSets.main.runtimeClasspath
args "db", "status", "service.yml"
}
.
Non penso che questo sia esattamente lo stesso di run
, poiché non è in esecuzione contro la costruzione jar
che non credo, ma funziona per i miei scopi.
Soluzione
Le attività non possono essere "estese" in questo modo.Invece, dichiara un'altra attività e configurarlo come appropriato.(È comune configurare più attività contemporaneamente per evitare la duplicazione del codice.)