如何在 build.gradle 中使用 gradle 属性
How to use gradle properties in build.gradle
当我运行这个任务时:
task tmpTask << {
project.properties.each {println " $it"}
}
我明白了:
org.gradle.java.home=/usr/lib/jvm/java-6-oracle
但是如何使用这个变量呢?我都试过了:
task tmpTask << {
println org.gradle.java.home
println project.properties.org.gradle.java.home
}
但是 none 这行得通。第一次打印给出错误:
Could not find property 'org' on task ':tmpTask'.
第二次失败:
Cannot get property 'gradle' on null object
project.properties
是一个 Map<String, ?>
所以你可以使用
project.properties['org.gradle.java.home']
您也可以使用 property() 方法(但会在其他位置查找):
project.property('org.gradle.java.home')
为了其他人的利益。如果你定义的属性不是点分隔的,那么直接引用即可。
在你的gradle.properties
中:
myProperty=This is my direct property
my.property=This is my dotted property with\t\t tabs \n and newlines
在你的build.gradle
中:
// this works
println myProperty
println project.property('my.property')
// this will not
println my.property
来自gradle.properties
将道具添加到文件中gradle.properties
hi1=hi
来自命令行
在命令行末尾添加-Pxxx
。
./gradlew -q readPropertiesTask -Phi2=tete
几个属性:
./gradlew -q readPropertiesTask -Phi2=tete -Phi3=rr
怎么读?
val propFromFile = project.properties["hi1"]
println("propFromFile = $propFromFile")
当我运行这个任务时:
task tmpTask << {
project.properties.each {println " $it"}
}
我明白了:
org.gradle.java.home=/usr/lib/jvm/java-6-oracle
但是如何使用这个变量呢?我都试过了:
task tmpTask << {
println org.gradle.java.home
println project.properties.org.gradle.java.home
}
但是 none 这行得通。第一次打印给出错误:
Could not find property 'org' on task ':tmpTask'.
第二次失败:
Cannot get property 'gradle' on null object
project.properties
是一个 Map<String, ?>
所以你可以使用
project.properties['org.gradle.java.home']
您也可以使用 property() 方法(但会在其他位置查找):
project.property('org.gradle.java.home')
为了其他人的利益。如果你定义的属性不是点分隔的,那么直接引用即可。
在你的gradle.properties
中:
myProperty=This is my direct property
my.property=This is my dotted property with\t\t tabs \n and newlines
在你的build.gradle
中:
// this works
println myProperty
println project.property('my.property')
// this will not
println my.property
来自gradle.properties
将道具添加到文件中gradle.properties
hi1=hi
来自命令行
在命令行末尾添加-Pxxx
。
./gradlew -q readPropertiesTask -Phi2=tete
几个属性:
./gradlew -q readPropertiesTask -Phi2=tete -Phi3=rr
怎么读?
val propFromFile = project.properties["hi1"]
println("propFromFile = $propFromFile")