编辑口味和路径:
目前我有:
sourceSets.whenObjectAdded {
sourceSet ->
def sourceData = rootProject.ext[sourceSet.name]
sourceSet.java.srcDirs = sourceData.javaDirRelease
}
rootProject.ext 是一个文件,其中定义了所有 productFlavor 特定配置,如下所示:
ext{
flavor1 = [
javaDirRelease : ['src/pathToJavaReleaseFiles']
javaDirDebug : ['src/pathToJavaDebugFiles']
]
}
在主 build.gradle 我也这样做:apply from: 'variants.gradle'
其中包含上述 ext{} 对象。
sourceSet 的定义如下:
sourceSets {
flavor1{}
}
这可行,但我想添加一个特定于 productFlavor 的 sourceSet 和 buildType,如下所示:
sourceSet.debug.java.srcDirs = 'src/pathToJavaDebugFiles'
可以为每个产品风味和每个 buildType 定义,但是当我尝试动态添加它时这不起作用。
对我有用的是这个(感谢这个答案How can I specify per flavor buildType sourceSets?):
sourceSets {
flavor1{
def flavorData = rootProject.ext['flavor1']
release {
java.srcDirs = flavorData.javaDirRelease
}
debug {
java.srcDirs = flavorData.javaDirDebug
}
}
}
但是我真的很希望动态添加它,所以我仍然可以保持我的配置文件完好无损。我的构建配置非常复杂,不像这里描述的那么简单,因此我不需要将源文件放入文件夹 src/flavor1Debug 的建议,因为这些资源也是从其他 productFlavors 使用的,所以这不起作用。