Step into Gradle - 03 - Properties
2015-06-05 12:10
302 查看
目录
Properties
System Properties
Project Properties
Extra Properties
普通变量
属性文件
摘要
System Properties,Project Properties,Extra Properties,普通变量,属性文件
格式
在脚本中通过
例
运行
获取不存在的属性时会返回 null
格式
在脚本中通过
例
运行
获取不存在的属性会抛出异常,所以需要先进行判断
定义在 task 外的为 project 属性,task 内的为 task 属性
task 内部访问 project 的 ext 属性时,不要加前缀 “ext”。
task 内部访问自身的 ext 属性时,前缀 “ext”可加可不加。
例
运行
结合 SourceSets 的例子
运行
输出
运行
定义属性
访问
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 }
相关文章推荐
- Linux系统安装时分区的选择(推荐)
- Linux上传文件到服务器命令
- centos 5 yum安装与配置vsFTPd FTP服务器
- Linux下phpmyadmin忘记root的登录密码,找回方法
- 同学们,OpenCV出3.0了,速去围观!
- Windows下PHP+Apache2开发环境搭建
- Build Apache Nutch With Solr 5.1.0
- Build Apache Gora with Solr 5.1.0
- Linux基础,查看基础信息
- Odoo(OpenERP)应用实践:办公用品的领用及归还
- Auto property synthesis will not synthesize property 'description' because it is 'readwrite' but it
- 模拟器连接openfire服务器失败(使用127.0.0.1)
- Openwrt 移植hello world
- Hadoop问题汇总
- linux 关闭防火墙。
- Deep Learning Open Sources
- zabbix 自动发现端口进行监控
- tomcat添加用户
- How to reuse old PCs for Solr Search Platform?
- openSSL命令、PKI、CA、SSL证书原理