我有三个BuildTypes发布,调试&定制。我想在自定义Build中保留少量文件。 buildTypes允许我使用'custom.initWith'保留发布中的所有内容。 sourceSets有类似的东西吗?
buildTypes {
release { // release stuff}
debug { // debug stuff}
custom.initWith(buildTypes.release)
custom { // custom stuff }
}
sourceSets {
main.setRoot('src/main')
release.setRoot('build-types/release')
debug.setRoot('build-types/debug')
custom.setRoot( //Want to include some files from 'build-types/release'
and all files from 'build-types/custom')
这可以通过Android中的Gradle实现吗?
setRoot允许我只包含'build-types / custom'。 可以将“build-types / release”文件夹中的所需文件添加到“build-types / custom”。这有一个缺点。
其他问题仅对Resources文件有特定需求。 Android Flavors : Multiple java and src directories for each flavor。我想共享其他文件夹中的文件,其中包含res,assets,java和&清单。
答案 0 :(得分:1)
您可以通过
行中的脚本包含多个文件夹中的资源sourceSets {
custom.manifest.srcFile 'AndroidManifest.xml'
custom.java.srcDirs = ['src/commonFiles/java']
custom.resources.srcDirs = ['src/commonFiles/java']
custom.aidl.srcDirs = ['src/commonFiles/java']
custom.renderscript.srcDirs = ['src/commonFiles/java']
custom.assets.srcDirs = ['assets']
custom.res.srcDirs = ['src/custom/res', src/main/res']
}
或者将custom
放在自己的块中:
sourceSets {
custom {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src/commonFiles/java']
resources.srcDirs = ['src/commonFiles/java']
aidl.srcDirs = ['src/commonFiles/java']
renderscript.srcDirs = ['src/commonFiles/java']
assets.srcDirs = ['assets']
res.srcDirs = ['src/custom/res', src/main/res']
}
}