问题:
开发的时候经常需要向项目中添加一些额外的参数或者硬编码的值。
解决方案:
使用ext块设置公用的值。如果需要从build文件中移除这些值,可以将参数放到gradle.properties文件中,或者在命令行下使用-P设置参数。
详细:
Gradle文件支持使用简单的ext(ext代表extra)语法定义参数。这样可以定义一次变量,在整个文件中使用它。
你可以将参数值硬编码到build文件。如:
Groovy风格被应用在这里,意味着AAVersion没有类型,在赋值的时候使用字符串,并且插入到两个Groovy字符串中。
使用def关键字意味着在当前文件中这是一个本地变量。如果定义参数的时候没有使用def(或者使用其他类型),这个变量是对应于整个项目,即在它的任何子项目中都可以使用这个参数。
如果希望将实际的参数值从build文件中移除?考虑一种情况,使用maven仓库的时候需要登录验证,如:这是硬编码的
你不必再build文件中记录实际的username和password值。你可以将他们写入根目录下的gradle.properties文件中,如
这样credentials块里面的值可以用变量代替,如:
你也可以在命令行下使用-P设置参数,如:
如果你使用多种方式设置参数,可以使用下面的方法:
执行printProperties任务可以心事ext块下的变量。
如果是参数是在gradle.properties文件中定义,结果有点不同:
参数可以通过命令行的方式设置(优先级最高)。
你可以通过,extras块,properties文件,命令行,这几种方式实现所需要的。