2015-01-08 12 views
7

Nel mio progetto ho diverse attività nel mio build.gradle. Voglio che quei compiti siano indipendenti durante la corsa. cioè ho bisogno di eseguire una singola attività dalla riga di comando. Ma il comando "gradle taskA" eseguirà sia taskA che taskB che non desidero. Come impedire l'esecuzione di un'attività ?.Come eseguire una singola attività gradle dalla riga di comando

Ecco un esempio di ciò che sto facendo.

task runsSQL{ 
    description 'run sql queries' 
    apply plugin: 'java' 
    apply plugin: 'groovy' 

    print 'Run SQL' } 

task runSchema{ 
    apply plugin: 'java' 
    apply plugin: 'groovy' 

    print 'Run Schema' } 

Ecco l'output che sto ottenendo. enter image description here

+0

Soluzione qui: http://stackoverflow.com/questions/23546286/gradle-task-should-not-execute-automatically/23546350#23546350 – Tomin

+0

Vedo che si esegue il comando 'gradle'. Non riesco a trovare 'gradle.exe' sul mio PC. Sono nuovo del sistema di build Android e Gradle. Dove posso trovare il gradle eseguibile? –

+0

@SaeedNeamati Usa 'gradlew' se non hai installato Gradle (la maggior parte dei progetti Gradle contiene il wrapper' gradlew'), altrimenti puoi installare Gradle dal [sito Web di Gradle] (http://gradle.org). – ThePyroEagle

risposta

3

È possibile utilizzare l'opzione -x o l'opzione --exclude-task per escludere l'attività dal grafico delle attività. Ma è una buona idea fornire un esempio eseguibile.

+0

gradle taskA -x taskB eseguirà entrambe le attività. – Tomin

+1

Ok, è per questo che ti ho detto di fornire un esempio: ora è una discussione piuttosto astratta. – Opal

+0

Ho aggiornato la mia discussione con un esempio. Si prega di verificare – Tomin

11

Immagino che il punto che ti sei perso è che non definisci le attività qui ma hai configurato le attività. Dai un'occhiata alla documentazione di gradle: http://www.gradle.org/docs/current/userguide/more_about_tasks.html.

quello che volevi è qualcosa di simile:

task runsSQL (dependsOn: 'runSchema'){ 
    description 'run sql queries' 
    println 'Configuring SQL-Task' 
    doLast() { 
     println "Executing SQL" 
    } 
} 

task runSchema << { 
    println 'Creating schema' 
} 

Si prega di mente la scorciatoia '< <' per 'doLast'. Il passo doLast viene eseguito solo quando un'attività viene eseguita mentre la configurazione di un'attività verrà eseguita quando il file gradle viene analizzato.

Quando si chiama

gradle runSchema 

Vedrete il 'Configurazione di SQL-task' e poi la 'Creazione di schema' uscita. Ciò significa che runSQLTask verrà configurato ma non eseguito.

Se si chiama

gradle runSQL 

Di voi vedrete:

Configurazione di SQL-Task : runSchema Creazione schema : runsSQL Esecuzione SQL

runSchema viene eseguito perché EseguiSQL dipende da questo.

+0

Sì. Questo risponde alla domanda. Grazie – Tomin

Problemi correlati