У меня есть проект gradle, в котором есть вычисляемая переменная, которую я должен передать в приложение.Когда я пытаюсь сделать это, передается нулевое значение, а не заданное значение, которое я хочу.
У меня есть файл примера ниже, который демонстрирует проблему для запуска, просто сделайте gradle foo. Я хочу, чтобы обе строки вывода были равны 4.
def String sum
task add {
doLast {
new ByteArrayOutputStream().withStream { os ->
def result = exec {
executable = 'sh'
args = ['-c', 'echo $((2 + 2))']
standardOutput = os
}
sum = os.toString()
afterEvaluate {
tasks.foo {
systemProperty "foo.bar", "${sum}"
}
}
}
}
}
task foo {
doLast{
println System.properties['foo.bar']
println "${sum}"
}
}
tasks.foo.dependsOn( add )