Erweitern Sie die vorhandene Gradle-Aufgabe und überschreiben Sie die Konfiguration
-
21-12-2019 - |
Frage
Ich möchte eine neue Aufgabe mit dem Namen definieren dbStatus
das ruft (oder erweitert?) run
, und überschreibt einfach die args
Eigentum.
apply plugin: 'application'
run {
args "server", "service.yml"
}
task(dbStatus, type: run) {
args "db", "status", "service.yml
}
Das funktioniert nicht, weil "run"
ist keine gültige Aufgabenklasse.Gibt es eine schnelle Möglichkeit, eine Aufgabe zu erweitern und einfach eine Eigenschaft zu überschreiben?
AKTUALISIEREN:Auflösung
Leider musste ich einfach ein ganz neues definieren JavaExec
Aufgabe, und erstellen Sie die Logik neu run
ist dafür konfiguriert.Hier ist, was ich mir ausgedacht habe:
task(dbStatus, type: JavaExec) {
main mainClassName
classpath sourceSets.main.runtimeClasspath
args "db", "status", "service.yml"
}
Ich glaube nicht, dass das genau dasselbe ist wie run
, da es nicht gegen den Build läuft jar
Ich glaube nicht, aber es funktioniert für meine Zwecke.
Lösung
Aufgaben können auf diese Weise nicht „verlängert“ werden.Deklarieren Sie stattdessen eine andere Aufgabe und konfigurieren Sie sie entsprechend.(Es ist üblich, mehrere Aufgaben gleichzeitig zu konfigurieren, um Codeduplizierung zu vermeiden.)