gpt4 book ai didi

android - 执行 assembleRelease Gradle 任务现在可以从自定义任务中执行

转载 作者:行者123 更新时间:2023-11-29 01:41:08 40 4
gpt4 key购买 nike

我的 build.gradle 文件中定义了以下 Gradle 任务

task myTask() << {
println "Start"
assembleRelease.execute()
println "end"
}

我想要的是在执行myTask时执行assembleRelease gradle任务。但是,我得到的是以下输出

Executing tasks: [myTask]

Configuration on demand is an incubating feature.
Relying on packaging to define the extension of the main artifact has been deprecated and is scheduled to be removed in Gradle 2.0
:gymgym:myTask
Start
end

BUILD SUCCESSFUL

如您所见,“开始”后跟“结束”,这意味着 assembleRelease 尚未被调用。

我做错了什么?

最佳答案

Gradle 中的每个任务都是 DAG 上的节点。听起来您正试图将一项任务与另一项任务结合起来,这不符合模型。但是,您可以使用 doFirstdoLast 将工作附加到任何任务的开头和/或结尾。如果你希望它是可选的,你可以让它依赖于一个可选的命令行参数。

ext.SHOULD_WRAP = hasProperty('shouldWrap') ? shouldWrap.toBoolean() : false
if (SHOULD_WRAP) {
wrapAssemble()
}
def start() {
println "Start"
}
def end() {
println "end"
}
def wrapAssemble() {
assembleRelease.doFirst {
start()
}
assembleRelease.doLast {
end()
}
}

使用此配置,调用 ./gradlew assembleRelease -PshouldWrap=true 将使用您的前置和附加工作执行组装任务。调用./gradlew assembleRelease -PshouldWrap=false 或简单的./gradlew assembleRelease 将正常执行汇编任务。

旧答案

只需将您的任务设置为 assembleRelease 的依赖项:

任务 myTask() << { 打印“开始” 打印“结束”}assembleRelease.dependsOn“我的任务”

现在您的任务将始终在 assembleRelease 时执行。

关于android - 执行 assembleRelease Gradle 任务现在可以从自定义任务中执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24614336/

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