我有一个具有多个模块的项目 - 库和应用程序。每次Android新版本出现时,我都需要升级所有模块的targetSdk、compileSdk、buildToolsVersion等。常数可以帮助完成这项乏味的工作!
如何定义对所有模块的 build.gradle 可见的项目级常量?
我选择执行类似操作的方法是创建一个属性文件,然后读取该文件以获取所有全局变量。您可以使用 java 语法来做到这一点:
Properties props = new Properties()
props.load(new FileInputStream("/path/file.properties"))
您更喜欢的语法是:
Properties props = new Properties()
File propsFile = new File('/usr/local/etc/test.properties')
props.load(propsFile.newDataInputStream())
这样,您可能会在所有模块中重复代码,但至少您的问题得到了解决。
第二个选项是使用额外属性扩展 https://docs.gradle.org/current/dsl/org.gradle.api.plugins.ExtraPropertiesExtension.html我个人从未使用过它,但根据问题的回答Android gradle build:如何设置全局变量 https://stackoverflow.com/a/25600733/611600它似乎做你想做的事。
UPDATE
如果为了执行此操作使用ExtraPropertiesExtension
, 在你的<project base>/build.gradle
add:
allprojects {
repositories {
jcenter()
}
//THIS IS WHAT YOU ARE ADDING
project.ext {
myprop = "HELLO WORLD";
myversion = 5
}
}
然后在同步后,在每个模块的 build.gradle 文件中,您可以像这样使用:
System.out.println(project.ext.myprop + " " + project.ext.myversion)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)