У меня есть приложение с 4 вкусами продукта. build.gradle
выглядит так:
android {
compileSdkVersion 23
buildToolsVersion "23.0.3"
defaultConfig {
applicationId "com.example.testing"
minSdkVersion 23
targetSdkVersion 23
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
productFlavors {
flavor1 {
applicationId "com.flavor1"
}
flavor2 {
applicationId "com.flavor2"
}
flavor3 {
applicationId "com.flavor3"
}
flavor4 {
applicationId "com.flavor4"
}
}
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.4.0'
}
Я добавил исходные наборы для вкусов и добавил несколько файлов для каждого конкретного вкуса.
Кроме того, я хотел указать, какие файлы следует исключить во флейворе1 из основного исходного набора.
Файлы, которые следует исключить из основного исходного набора, находятся в main/java/com/example/testing/
.
- файл1.java
- файл2.java
- файл3.java
- файл4.java
В каждом варианте я хотел бы исключить 1 файл из них. Но я хочу, чтобы во вкусе было все остальное. Пример:
фавор1 должен иметь: файл2, файл3, файл4.
falvor2 должен иметь: файл1, файл3, файл4.
и т. д.
Как вы можете видеть, файлы являются общими для большинства разновидностей, поэтому я не хочу помещать их все в разновидности, потому что это будет копия кода, и каждое изменение в каждом файле должно будет применяться ко всем различным файлам разновидностей.
Я видел это:
sourceSets {
flavor1 {
java {
srcdir 'testing'
exclude '/file1'
}
}
Но это не сработало бы для меня. Я не могу разобраться.
Спасибо }