3

简短的问题

在一个 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.propertiesJavadoc)使用。

FWIW,我使用 Gradle 4.6。

4

0 回答 0