您的位置:首页 > 运维架构

Step into Gradle - 03 - Properties

2015-06-05 12:10 302 查看
目录

Properties
System Properties

Project Properties

Extra Properties

普通变量

属性文件

摘要

System Properties,Project Properties,Extra Properties,普通变量,属性文件

Properties

System Properties

定义 System 属性

格式

gradle taskName -D属性名=xxxx


在脚本中通过
System.properties[属性名]
来获取。



task echo << {
println System.getProperty("abc")   //123
println System.getProperty("def")   //null
if (hasProperty("zxc")) {
println System.getProperty("zxc")
}
}


运行

gradle -q echo -Dabc=123


获取不存在的属性时会返回 null

Project Properties

定义 Project 属性

格式

gradle taskName -P属性名=xxxx


在脚本中通过
属性名
来获取。



task echoProj << {
println foo         //bar
//    println foo2    //exception
if (hasProperty("foo3")) {
println foo3
}
}


运行

gradle -q echoProj -Pfoo=bar


获取不存在的属性会抛出异常,所以需要先进行判断

Extra Properties

动态属性,必须使用
ext
在脚本中指定

ext.属性名=xxx


定义在 task 外的为 project 属性,task 内的为 task 属性

task 内部访问 project 的 ext 属性时,不要加前缀 “ext”。

task 内部访问自身的 ext 属性时,前缀 “ext”可加可不加。



ext.extFoo = "extProjectBar"
task echoExt << {
//println ext.extFoo    //exception
println extFoo  //extProjectBar

ext.extFoo2 = "extTaskBar"
println extFoo2 //extTaskBar
println ext.extFoo2 //extTaskBar
}


运行

gradle -q echoExt


结合 SourceSets 的例子

ext {
springVersion = "3.1.0.RELEASE"
emailNotification = "build@master.org"
}
sourceSets.all { ext.purpose = null }
sourceSets {
main {
purpose = "production"
}
test {
purpose = "test"
}
plugin {
purpose = "production"
}
}
task printProperties << {
println springVersion       //3.1.0.RELEASE
println emailNotification   //build@master.org
sourceSets.matching { it.purpose == "production" }.each { println it.name }
}


运行

gradle -q printProperties


输出

main
plugin


普通变量

使用关键字
def
定义

def x = 1
task echoVar << {
def y = 2
println x   //1
println y   //2
}


运行

gradle -q echoVar


属性文件

属性文件与
build.gradle
位于同文件夹,名为
gradle.properties
。在 build 脚本中可以直接访问此文件中的属性。

定义属性

POM_GROUP_ID=com.example
POM_ARTIFACT_ID=hello
POM_VERSION=0.0.1-SNAPSHOT


访问

task info << {
println POM_GROUP_ID   //com.example
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: