简短的问题
在一个 Gradle 任务的配置中,如何引用另一个任务的输入?
我试过的
考虑以下(人为的)示例build.gradle文件(存储在 下/tmp/foo),我想在两个不同的任务中使用相同的任务输入值:
task task1 {
def myInput = projectDir // (or any other directory)
inputs.dir(myInput).withPropertyName('t1Input')
doLast {
println myInput
}
}
task task2 {
dependsOn task1
def myInput = task1.inputs.properties['t1Input']
inputs.dir(myInput).withPropertyName('t2Input')
doLast {
println myInput
}
}
在task2我想使用与 中相同的输入task1。但是,当我运行此构建时,./gradlew --console=verbose --warning-mode=all task2我得到:
> Task :task1
/tmp/foo
> Task :task2
A problem was found with the configuration of task ':task2'. Registering invalid inputs and outputs via TaskInputs and TaskOutputs methods has been deprecated and is scheduled to be removed in Gradle 5.0.
- No value has been specified for property 't2Input'.
null
似乎我的名为t1Inputfromtask1的任务输入属性无法通过task1.inputs.properties(Javadoc)使用。
FWIW,我使用 Gradle 4.6。