Краткий вопрос
В конфигурации одной задачи 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
Кажется, что мое свойство ввода задачи с именем t1Input
из task1
недоступно через task1.inputs.properties
( Javadoc).
FWIW, я использую Gradle 4.6.