2016-07-07 16 views
8

In meiner gradle Datei ausführen definiert ich die folgende Aufgabe:Gradle Befehlszeilen in benutzerdefinierten Task

task text_example << 
{ 
    //?!? commandLine '' 
    println 'Fam Flinstone' 
} 

ich in dieser Aufgabe einige Befehle Zeile setzen möchten. Wie kann ich das machen ?

Ich verwende eine Bibliothek, um automatisch in Google Play zu veröffentlichen. Mein Projekt basiert auf Produkt-Flavors und ich muss Terminal-Befehlszeile für jede meiner Geschmacksrichtungen per Befehlszeile übergeben. Also ich möchte alle Befehle Linie in test_example Aufgabe übergeben.

Antwort

11

Sie im Grunde zwei große bequeme Möglichkeiten:

  1. Verwenden Gradle Exec Aufgabentyp

    task fooExec(type: Exec) { 
        workingDir "${buildDir}/foo" 
        commandLine 'echo', 'Hello world!' 
    } << { 
        println "Executed!" 
    } 
    
  2. Verwenden Gradle Project.exec Methode

    task execFoo << { 
        exec { 
         executable 'echo' 
         args 'Hello world!' 
        } 
        println "Executed!" 
    } 
    

In beiden Fällen können Sie innerhalb der Closure Ausführungsparameter mit den Methoden ExecSpec angeben. Die Standardausgabe und die Fehlerausgabe der ausgeführten Befehle werden zu stdout und stderr des Gradle-Prozesses umgeleitet.

Verwandte Themen