build.gradle中的外部变量

使用gradle命令的时候,经常被Option -P\-D搞得混淆。其实很容易区分一下。

Project property

在build.gradle文件中,能直接通过变量名访问 或者 project前缀访问的是project property。

设置

project property可以通过5种方式自定义设置(优先级从低到高):

  1. gradle.properties文件
    (user gradle home下的gradle.properties文件优先级高于工程目录下的gradle.properties文件)
branchName=t1
  1. 环境变量
ORG_GRADLE_PROJECT_branchName=t2
  1. 命令行-D
./gradlew clean build -Dorg.gradle.project.branchName=t3
  1. 命令行-P
./gradlew clean build -PbranchName=t4
  1. build.gradle自身文件内, 定义时使用前缀ext。
ext {
  branchName=t5
}
访问

读取project property时需要注意,如果值不存在,构建将直接失败。因此,如果有值不存在的情况需要判断时,使用方法Project.hasProperty(java.lang.String)

System property

看了上面第3项中,有个命令行-D
其可以传递一个system property给gradle运行的JVM中,跟Java -D的功用相同。

设置

system property可以使用两种方式自定义:

  1. gradle.properties文件。使用前缀systemProp:
systemProp.branchName=y1

需要注意,在multi project build中,只有root directory下的gradle.properties文件中配置的systemProp才会生效。其他子模块中的会被忽略。

  1. 命令行-D
./gradlew clean build -DbranchName=y2
访问

需要在build.gradle文件中使用时,需要调用:

System.properties['system']

转载于:https://my.oschina.net/elleneye/blog/2979492

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值