Ich schreibe eine Gradle-Build-Datei, die eine grundlegende Entwicklungsdomäne für unser Produkt installieren wird. Im Wesentlichen wird der gesamte echte Code in benutzerdefinierten Plugins und benutzerdefinierten Tasks enthalten sein. Einige der Schritte sind ziemlich repetitiv (mehrere sudo-Aufrufe, mehrere Benutzer hinzufügen) und ich möchte die gemeinsamen Sachen in eine Aufgabe kapseln.Was ist die am besten geeignete Methode, die Exec-Task in Großbuchstaben für allgemeine Befehlszeilenoperationen wiederzuverwenden?
Zum Beispiel:
task('addDBUser', type:AddUser) {
username = joeUser
}
task('startService', type:SudoExec) {
workingDir = "not/too/relevant"
commandLine = "/etc/init.d/coolService start"
}
Ich mag würde die verschiedenen Funktionen wieder zu verwenden, die Exec mir bekommt (stdin, stdout, etc.) als tidily wie möglich, während die vorformulierten Versorgung ("sudo ... ") automatisch. Ich bin mir ziemlich sicher, dass ich Exec anstelle von DefaultTask erweitern kann, aber ich kenne keine Standardmethode, um eine tatsächliche Aktion auszulösen. Es scheint einfach zu sein, die Eigenschaft commandLine mit dem zu modifizieren, was ich brauche, aber es gibt kein generisches "run()" oder ähnliches, das ich verwenden kann, wenn ich möchte, dass Exec tatsächlich läuft.
Ich öffne Exec, um festzustellen, welche Methode es ist Arbeitsmethode und dann direkt aufrufen? Oder gibt es einen allgemeineren Weg, um mein Ziel zu erreichen?
Irgendwelche Gründe für den Downvote? Ich kann keine besseren Fragen schreiben, wenn ich nicht weiß, was los ist. –
Ich stimme Josh zu. Ich hasse es auch, wenn jemand ohne Grund einen Countdown gibt. Ich denke, dass das Beste sein wird, wenn ein Kommentar für den Downvote benötigt wird. – pepuch