Группировка нескольких из множества исходных наборов, имеющих одинаковую конфигурацию
Допустим, у меня есть следующееsourceSets
:
sourceSets {
flavor1 {
assets.srcDirs = ['repo-assets/flavor1']
res.srcDirs = ['repo-res/flavor1']
}
flavor2 {
assets.srcDirs = ['repo-assets/flavor2']
res.srcDirs = ['repo-res/flavor2']
}
flavor3 {
assets.srcDirs = ['repo-assets/flavor1']
res.srcDirs = ['repo-res/flavor1']
}
flavor4 {
assets.srcDirs = ['repo-assets/flavor2']
res.srcDirs = ['repo-res/flavor2']
}
}
Если вы заметилиflavor1
а такжеflavor3
есть такие же srcDirs и такflavor2
а такжеflavor4
.
Я пытался выяснить, есть ли способ избежать избыточности, используя что-то вроде этого:
sourceSets {
flavor1, flavor3 {
assets.srcDirs = ['repo-assets/flavor1']
res.srcDirs = ['repo-res/flavor1']
}
flavor2, flavor4 {
assets.srcDirs = ['repo-assets/flavor2']
res.srcDirs = ['repo-res/flavor2']
}
}
Выше не работает (уже пробовал). Ищите что-то подобное, чтобы я мог просто предоставить общий наборsourceDirs
для набора ароматов. Кто-нибудь пытался сделать что-то подобное и может предоставить некоторые указатели?
Есть ли имяsourceSets
должны быть такими же, как у ароматизаторов?
Могу ли я назватьsourceSets
отдельно, а затем сопоставить их сproductFlavors
как это?
productFlavors {
flavor1 {
sourceset = "src1"
}
flavor2 {
sourceset = "src2"
}
flavor3 {
sourceset = "src1"
}
flavor4 {
sourceset = "src2"
}
}
sourceSets {
src1 {
}
src2 {
}
}
Пробная возможность № 3Можно ли динамически назначать исходные наборы с помощью задач для достижения того же результата?
ОБНОВИТЬДуглас Отчасти ответ помог мне очень приблизиться к тому, что я искал в конечном итоге (сокращение кода в build.gradle). Он использовал возможность № 3 выше. Спасибо, Дуглас! Любая лучшая альтернатива от охотников за головами все еще приветствуется (что-то ближе к возможностям № 1 и № 2 выше). Если ничего не происходит, щедрость принадлежит Дугласу, когда заканчивается период, когда я принял его ответ. Но все равно будет оставаться оптимистичным в поисках лучшей альтернативы.