2015-12-30 12 views
9

Mam projekt Androida z wieloma modułami. Próbuję uruchomić niestandardowe zadanie gradle z jednego z modułów, ale za każdym razem uruchamiam zadanie wszystkie inne zadania gradle w module, jak również w innych modułach. Moje zadanie nie zależy od innych zadań. Zadania:Wykonaj niestandardowe niezależne zadanie gradowania w Android Studio

task helloTask{ 
    println "Hello task" 
} 

Próbowałem uruchomić to zadanie przez okno terminalu w studio, a także z linii poleceń.

Odpowiedz

9

Gradle wykona wszystkie zadania nie zadeklarowane przy << podczas fazy konfiguracji. Jeśli chcesz, aby opóźnić wykonanie zadania aż do fazy realizacji następnie można po prostu dodać <<

w twojej build.gradle

task helloConfiguration { task -> 
    println "Hello configuration phase task! $task.name" 
} 

/* Notice the `<<` this denotes to gradle to not execute 
* the closure during the configuration phase. Instead 
* delay closure's execution till the execution phase. 
*/ 
task helloExecution << { task -> 
    println "Hello execution phase task! $task.name" 
} 

helloExecution.dependsOn helloConfiguration 

Następnie podczas wykonywania zadania helloExecution widzimy zarówno bieg, porządek zapewnione. Następnie, jeśli chcemy tylko uruchamiać zadania, które konfigurują kompilację, możemy to zrobić oddzielnie, jeśli chcemy i uruchamiamy tylko jedno zadanie.

$ gradle helloExecution 
Hello configuration phase task! helloConfiguration 
Hello execution phase task! helloExecution 
:helloConfiguration UP-TO-DATE 
:helloExecution UP-TO-DATE 

BUILD SUCCESSFUL 

Total time: 0.64 secs 

$ gradle helloConfiguration 
Hello configuration phase task! helloConfiguration 
:helloConfiguration UP-TO-DATE 

BUILD SUCCESSFUL 

Total time: 0.784 secs 

Zadania, które są uruchamiane w fazie konfiguracji zawsze będą wykonywane nawet jeśli nie są dostarczane zadania, które jest zachowanie I spodziewać się zobaczyć. Tak więc biorąc pod uwagę powyższy przykład. Zauważ, że zadanie konfiguracyjne zostało uruchomione, ale nie wykonanie.

$ gradle 
Hello configuration phase task! helloConfiguration 
:help 

Welcome to Gradle 2.10. 

To run a build, run gradle <task> ... 

To see a list of available tasks, run gradle tasks 

To see a list of command-line options, run gradle --help 

To see more detail about a task, run gradle help --task <task> 

BUILD SUCCESSFUL 

Total time: 0.651 secs 

Więc jeśli masz 5 zadań, które są uruchamiane w fazie konfiguracji to byś zobaczyć je wszystkie wykonać, niezależnie od zadania Linia komend args próbował powołać na cel w fazie realizacji.

+0

Chcę uruchomić zadanie, które nie jest zależne od żadnego z domyślnych zadań. Po prostu chcesz uruchomić konkretne zadanie, nie jest to możliwe? –

+0

Jeśli wiesz, jakie zadania chcesz wyeliminować, możesz je jawnie określić w linii poleceń 'gradle myTask -x someTaskThatShouldNotRun' – JBirdVegas

+3

Niestety, żadna z tych odpowiedzi nie odpowiada na to pytanie. – JoshuaTree

0

Możesz użyć Run Configurations, aby osiągnąć to samo. Patrz: https://developer.android.com/studio/run/rundebugconfig.html

Przejdź do Uruchom -> Edytuj konfiguracje -> Kliknij +, aby dodać nową konfigurację -> Wybierz Gradle z wyświetlonej listy. Na koniec wybierz aplikację i wpisz zadanie, które chcesz uruchomić. Android Studio zapewni nawet autouzupełnianie dla tego samego.

Później uruchomienie tego zadania będzie dostępne jako opcja bezpośrednio w menu "Uruchom".

Powiązane problemy