Erweitern Sie die vorhandene Gradle-Aufgabe und überschreiben Sie die Konfiguration

StackOverflow https://stackoverflow.com//questions/25026632

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

War es hilfreich?

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

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top