J'ai un projet Android avec plusieurs modules. J'essaie d'exécuter une tâche de gradeau personnalisée à partir de l'un des modules, mais chaque fois, j'exécute la tâche pour toutes les autres tâches de gradé du module, ainsi que pour les autres. Ma tâche ne dépend d'aucune autre tâche. Les tâches :
task helloTask{
println "Hello task"
}
J'ai essayé d'exécuter cette tâche à travers la fenêtre du terminal en studio ainsi que depuis la ligne de commande.
Gradle exécutera toutes les tâches non déclarées avec <<
lors de la phase de configuration. Si vous souhaitez retarder l'exécution d'une tâche jusqu'à la phase d'exécution, vous pouvez simplement ajouter le <<
Dans votre 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
Ensuite, lors de l'exécution de la tâche helloExecution
, nous voyons les deux exécuter, ordre assuré. Ensuite, si nous voulons seulement exécuter les tâches qui configurent la construction, nous pouvons le faire séparément si nous voulons et n’exécuter qu’une seule tâche.
$ 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
Les tâches qui s'exécutent pendant la phase de configuration seront TOUJOURS exécutées même si aucune tâche n'est fournie, ce qui est le comportement que j'attends de votre part. Donc, étant donné l'exemple ci-dessus. Notez que la tâche de configuration a été exécutée mais pas l'exécution.
$ 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
Ainsi, si vous avez 5 tâches qui s'exécutent dans la phase de configuration, vous les verrez toutes s'exécuter, quelle que soit la tâche que les arguments de ligne de commande ont tenté d'appeler pour la cible de la phase d'exécution.
Dans Android Studio, ouvrez la vue Gradle (coin supérieur droit de la fenêtre d'Android Studio).
Appuyez sur Exécuter Gradle Task (bouton rond).
Dans la liste des modules, sélectionnez le module contenant build.gradle, puis sélectionnez task dans la liste des tâches.
Toujours dans l'arborescence de la vue Gradle, votre tâche apparaît sous YourModule/Tasks/other
, à moins que group
soit explicitement spécifié pour la tâche.
Vous pouvez utiliser les configurations d'exécution pour obtenir le même résultat. Voir: https://developer.Android.com/studio/run/rundebugconfig.html
Allez dans Exécuter -> Modifier les configurations -> Cliquez sur + pour ajouter une nouvelle configuration -> Sélectionnez Gradient dans la liste qui apparaît. Enfin, sélectionnez l'application et tapez la tâche que vous souhaitez exécuter. Android Studio fournira même la saisie automatique pour la même chose.
Plus tard, l’exécution de cette tâche sera disponible en option directement dans le menu "Exécuter".