我有一个如下所示的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。我尝试了 finalizedBy 和 doLast,但我找不到一个解决方案,如何传递参数,同时在另一个任务中执行任务。当我通过命令行执行任务B时,例如:
gradle B -Pversion=1.0.0
它工作正常,参数传递正确。
1条答案
按热度按时间kx1ctssn1#
无法从任务A“调用”任务B- Gradle任务与函数不同。
将数据从一个任务传递到另一个任务的唯一方法是
1.第一任务将变量保存到文件,
1.则第二任务读取由第一任务产生的文件。
文档中有一个示例,您可以对其进行调整以捕获用户输入