Gradle.properties свойство с ошибкой чтения с точечной записью
Я получаю сообщение об ошибке, считывающее свойство с точечной нотой от gradle.properties
. Почему?
Если я использую version
вместо build.version
, все в порядке.
Спасибо заранее.
FAIL CASE
gradle.properties
build.version=2.0.1
build.gradle
apply plugin: 'java'
task testProperties << {
println "***************** TEST **********************"
println build.version
println "*********************************************"
}
ОФОРМЛЕНИЕ
... $ gradle devTest
:devTest
***************** TEST **********************
:devTest FAILED
FAILURE: Build failed with an exception.
* Where:
Build file '..../build.gradle' line: 50
* What went wrong:
Execution failed for task ':devTest'.
> Could not find property 'version' on task ':build'.
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or<br> --debug option to get more log output.
BUILD FAILED
CASE
gradle.properties
version=2.0.1
build.gradle
apply plugin: 'java'
task testProperties << {
println "***************** TEST **********************"
println version
println "*********************************************"
}
ОФОРМЛЕНИЕ
... $ gradle devTest
:devTest
***************** TEST **********************
2.0.1
*********************************************
BUILD SUCCESSFUL
Ответы
Ответ 1
Вы не можете использовать свойства с точкой таким образом, потому что Groovy считает это свойством version
экземпляра build
. Если вы хотите, чтобы свойство содержало точку, вы должны использовать его следующим образом:
println rootProject.properties['build.version']
Ответ 2
Другой способ получить доступ к свойствам - использовать синтаксис ниже
println "Version: ${project.'build.version'}"
Ответ 3
И еще один:
println property('build.version')
println "Version: ${property('build.version')}"
или
println ext['build.version']
println "Version: ${ext['build.version']}"
См. документацию по свойствам и дополнительных свойств.