Ответ
SourceSet определяет структуру исходных файлов (код, ресурсы) для конкретной конфигурации сборки (например, main, test, debug). Он указывает, где искать файлы для компиляции.
Таргет (build variant) — это комбинация buildType (debug/release) и productFlavor (например, free/paid). Он определяет, как будет собираться приложение, включая настройки, зависимости и манифесты.
Пример:
android {
sourceSets {
main {
java.srcDirs = ['src/main/java']
res.srcDirs = ['src/main/res']
}
debug {
manifest.srcFile 'src/debug/AndroidManifest.xml'
}
}
productFlavors {
free { ... }
paid { ... }
}
}
Здесь main и debug — SourceSets, а freeDebug или paidRelease — таргеты.