gpt4 book ai didi

android - 在android studio中执行自定义的独立gradle任务

转载 作者:可可西里 更新时间:2023-11-01 19:04:27 24 4
gpt4 key购买 nike

我有一个包含多个模块的 android 项目。我正在尝试从其中一个模块运行自定义 gradle 任务,但每次我运行该任务时,该模块以及其他模块中的所有其他 gradle 任务。我的任务不依赖于任何其他任务。任务:

task helloTask{
println "Hello task"
}

我试过通过工作室的终端窗口和命令行运行这个任务。

最佳答案

Gradle 将执行所有未使用 << 声明的任务在配置阶段。如果您想将任务的执行延迟到执行阶段,那么您只需添加 <<

在你的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

然后在执行 helloExecution 时我们看到任务都在运行,订单得到保证。接下来,如果我们只想运行配置构建的任务,我们可以根据需要单独执行,并且只运行一个任务。

$ 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

在配置阶段运行的任务将始终执行,即使没有提供任何任务,这是我希望您看到的行为。所以给出上面的例子。请注意配置任务已运行但未执行。

$ 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

因此,如果您有 5 个任务在配置阶段运行,那么您会看到所有任务都在执行,而不管命令行参数试图为执行阶段的目标调用的任务是什么。

关于android - 在android studio中执行自定义的独立gradle任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34535011/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com