とbad
タスクを持つ最小限のbuild.gradle
ファイルがあります。タスクからグローバル変数を参照すると私のgradleタスクがなくなります
def owner = 1
task('bad') {
doLast {
println "My owner is, ${owner}"
}
}
task good {
doLast {
println 'This is good'
}
}
これが出力されます:私は私の奇妙なエラーを与え、これが動作しない理由を理解したいと思います
FAILURE: Build failed with an exception.
* Where:
Build file 'test\build.gradle' line: 4
* What went wrong:
A problem occurred evaluating root project 'test'.
> No signature of method: build_6t4ha87o2gnjb2kllhp0wwfpi$_run_closure1.doLast() is applicable for argument types: (build_6t4ha87o2gnjb2kllhp0wwfpi$_run_closure
1$_closure4) values: [[email protected]]
Possible solutions: doCall(), doCall(java.lang.Object), collect(), collect(), isCase(java.lang.Object), isCase(java.lang.Object)
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
BUILD FAILED
しかし、単にのprintlnからowner
への参照を削除するかだけでも、名前の変更私のグローバルowner
変数はowner1
になります。私はいくつかのgradleの内部を妨害しているように見えますが、正確な方法は分かりません。
私はこの実験ではgradle 3.4を使用しています。