我在gradle构建文件中有不同的风格:
我想在每个app / src / flavor /目录中放置一个.properties文件
app
src
flavor1/
java/
app.properties
flavor2/
java/
app.properties
然后在任务中使用对该文件的引用。
如何在groovy / gradle中引用当前flavor的目录?
答案 0 :(得分:2)
如果你真的想要每种风味的特性,这里是一种袖手旁观的方法。
步骤1:提出你的口味清单。出于本答案的目的,我将使用vanilla
和chocolate
。
步骤2:在模块根目录中,为每种风格创建一个属性文件(即vanilla.properties
,chocolate.properties
)。
步骤3:在你的productFlavors
闭包中,你将拥有加载该flavor的属性并使用它们的代码,使用类似的东西:
productFlavors {
vanilla {
applicationId "com.commonsware.android.gradle.hello.vanilla"
def propFile = rootProject.file('vanilla.properties')
if (propFile.canRead()) {
def Properties flavorProps = new Properties()
flavorProps.load(new FileInputStream(propFile))
// you can now access flavorProps[...] for various string keys
// identified here as ..., like flavorProps['foo']
}
}
// repeat for chocolate and other flavors
}
我能想到的上述代码中唯一的皱纹就是我对rootProject
的使用。我所有这些Gradle技巧的示例代码都是针对没有模块的项目,但Android Studio项目通常会在app/
模块(a.k.a.,子项目)中使用您的代码进行设置。在那种情况下我还没有尝试过这段代码,我不知道rootProject
是否会引用模块或顶级项目目录。除了rootProject
之外,可以使用不同的值来访问模块。