gpt4 book ai didi

kotlin - 使用其他任务中的参数调用 Gradle 任务

转载 作者:行者123 更新时间:2023-12-05 05:29:43 27 4
gpt4 key购买 nike

我有一个 Gradle 任务,看起来像这样(它收集用户的输入,然后将它们传递给第二个任务):

task A() {
doFirst {
ant.input(message: "Version:", addproperty: 'version')
tasks.b "-Pversion=${ant.properties.version}" //attempt to invoke task B()
}
}

第二个任务只是打印传递的变量:

task B() {
doFirst {
println "Version: ${version}"
}
}

问题是,任务 A 不会调用任务 B。我已经尝试使用 finalizedBydoLast 但我找不到如何通过在另一个任务中执行任务时的参数。当我通过命令行执行任务 B 时:

gradle B -Pversion=1.0.0

它工作正常,参数传递正确。

最佳答案

不可能从任务 A 中“调用”任务 B - Gradle 任务不像函数。

将数据从一个任务传递到另一个任务的唯一方法是如果

  1. 第一个任务将变量保存到文件中,
  2. 然后第二个任务读取第一个任务生成的文件。

an example in the docs ,您可以对其进行调整以捕获用户输入

abstract class Producer extends DefaultTask {
@OutputFile
abstract RegularFileProperty getOutputFile()

@TaskAction
void produce() {
// capture user input
ant.input(message: "Version:", addproperty: 'version')
String message = ant.properties.version
// save the user input to a file
def output = outputFile.get().asFile
output.text = message
logger.quiet("Wrote '${message}' to ${output}")
}
}

关于kotlin - 使用其他任务中的参数调用 Gradle 任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74872903/

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