2016-07-07 53 views
8

Nel mio file Gradle ho definito la seguente operazione:Gradle eseguire righe di comando in un'attività personalizzata

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

voglio mettere dentro questo compito qualche linea comandi. Come lo posso fare ?

Sto utilizzando una libreria per pubblicare automaticamente in Google Play. Il mio progetto si basa su Product Flavors e ho bisogno di passare in riga di comando del terminale da riga di comando per ognuno dei miei sapori. Quindi voglio passare tutta la riga di comando nell'attività test_example.

risposta

11

Hai sostanzialmente due principali opzioni convenienti:

  1. Usa Gradle Exec compito di tipo

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

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

In entrambi i casi all'interno della chiusura è possibile specificare i parametri di esecuzione utilizzando i metodi ExecSpec. L'output standard e l'output degli errori dai comandi eseguiti verranno reindirizzati a stdout e stderr del processo gradle.

Problemi correlati