gradle.properties使用点表示法读取属性失败

dar*_*onx 13 properties gradle

我收到一个错误,读取带有点符号的属性gradle.properties.为什么?

如果我用version而不是build.version一切都好.提前致谢.

失败案例

gradle.properties

build.version=2.0.1
Run Code Online (Sandbox Code Playgroud)

的build.gradle

apply plugin: 'java'

task testProperties << {
    println "***************** TEST **********************"
    println build.version
    println "*********************************************"
}
Run Code Online (Sandbox Code Playgroud)

执行

... $ 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
Run Code Online (Sandbox Code Playgroud)

成功案例

gradle.properties

version=2.0.1
Run Code Online (Sandbox Code Playgroud)

的build.gradle

apply plugin: 'java'

task testProperties << {
    println "***************** TEST **********************"
    println version
    println "*********************************************"
}
Run Code Online (Sandbox Code Playgroud)

执行

... $ gradle devTest

:devTest

***************** TEST **********************
2.0.1

*********************************************

BUILD SUCCESSFUL
Run Code Online (Sandbox Code Playgroud)

Mic*_*ael 16

您不能以这种方式使用带有点的属性,因为Groovy认为它versionbuild实例的属性.如果您希望属性包含一个点,那么您应该按以下方式使用它:

println rootProject.properties['build.version']
Run Code Online (Sandbox Code Playgroud)


小智 11

访问属性的另一种方法是使用下面的语法

println "Version: ${project.'build.version'}"
Run Code Online (Sandbox Code Playgroud)