2015-01-08 11 views
7

W moim projekcie mam kilka zadań w moim build.gradle. Chcę, aby te zadania były niezależne podczas pracy. tj. muszę uruchomić pojedyncze zadanie z wiersza poleceń. Jednak polecenie "gradle taskA" uruchomi zarówno taskA, jak i taskB, których nie chcę. Jak zapobiec uruchomieniu zadania ?.Jak uruchomić zadanie pojedynczej gradacji z wiersza polecenia

Oto próbka tego, co robię.

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' } 

Oto wyniki, które otrzymuję. enter image description here

+0

Rozwiązanie tutaj: http://stackoverflow.com/questions/23546286/gradle-task-nie można-wykonać-automatycznie/23546350#23546350 – Tomin

+0

Widzę, że uruchamiasz polecenie 'gradle'. Nie mogę znaleźć 'gradle.exe' na moim komputerze. Jestem nowy w systemie budowania systemu Android i Gradle. Gdzie mogę znaleźć plik wykonywalny gradle? –

+0

@SaeedNeamati Użyj 'gradlew' jeśli nie masz Gradle zainstalowany (projekty najbardziej Gradle zawierać owijki' gradlew'), w przeciwnym razie można zainstalować Gradle od [stronie Gradle] (http://gradle.org). – ThePyroEagle

Odpowiedz

3

Można użyć -x opcji lub --exclude-task przełącznik wykluczyć zadanie z wykresem zadań. Ale dobrym pomysłem jest dostarczenie działającego przykładu.

+0

gradle taskA -x taskB uruchomi oba zadania. – Tomin

+1

OK, dlatego kazałem ci podać przykład - teraz jest to dość abstrakcyjna dyskusja. – Opal

+0

Zaktualizowałem mój wątek na przykładzie. Proszę sprawdzić – Tomin

11

Domyślam się, że brakowało ci tego, że nie definiujesz zadań tutaj, ale skonfigurowałeś zadania. Zapoznaj się z dokumentacją gradle: http://www.gradle.org/docs/current/userguide/more_about_tasks.html.

Co chciałeś coś takiego:

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

task runSchema << { 
    println 'Creating schema' 
} 

Proszę pamiętać skrót '< <' dla 'doLast'. Krok doLast jest wykonywany tylko wtedy, gdy wykonywane jest zadanie, podczas gdy konfiguracja zadania zostanie wykonana po przeanalizowaniu pliku gradle.

Po wywołaniu

gradle runSchema 

Zobaczysz 'Konfigurowanie SQL Task' i potem 'Tworzenie schematu' wyjście. Oznacza to, że runSQLTask zostanie skonfigurowany, ale nie zostanie wykonany.

Jeśli zadzwonisz

gradle runSQL 

niż ty zobaczysz:

Konfigurowanie SQL Task : runSchema Tworzenie schematu : runsSQL Wykonanie SQL

runSchema jest wykonana, ponieważ runSQL zależy od tego.

+0

Tak. To odpowiada na pytanie. Dzięki – Tomin

Powiązane problemy