如何在build.gradle文件中设置属性并允许每个开发人员在本地覆盖它?我试过了:
gradle.properties:
MY_NAME = "Jonathon"
MY_COLOR = "blue"
Run Code Online (Sandbox Code Playgroud)
的build.gradle:
ext.MY_NAME = "John Doe"
task showit <<{
println "MY_NAME[" + MY_NAME + "]";
println "MY_COLOR[" + MY_COLOR + "]";
}
Run Code Online (Sandbox Code Playgroud)
gradle showit 得到:
:showit
MY_NAME[John Doe]
MY_COLOR["blue"]
Run Code Online (Sandbox Code Playgroud)
我认为在项目根目录下的gradle.properties文件中定义的属性将覆盖在build.gradle中定义的具有相同名称的属性,但这似乎不是这种情况.它只填补了遗失的财产.
小智 7
检查项目是否具有属性,如果没有,则将其设置为默认值:
ext {
if (!project.hasProperty('MY_NAME')) {
MY_NAME = 'John Doe'
}
}
Run Code Online (Sandbox Code Playgroud)
请参阅:https://docs.gradle.org/current/userguide/build_environment.html#sub : checking_for_project_properties
如果需要为多个属性执行此操作,可以定义一个函数:
def setPropertyDefaultValueIfNotCustomized(propertyName, defaultValue) {
if (!project.hasProperty(propertyName)) {
ext[propertyName] = defaultValue
}
}
ext {
setPropertyDefaultValueIfNotCustomized('MY_NAME', 'John Doe')
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7389 次 |
| 最近记录: |