Я использую greenDAO только в одном приложении, и я хотел бы избежать добавления зависимости от вкуса, который не использует его, чтобы приложение не раздулось.greenDAO только для одного аромата приложения
Проблема, с которой я столкнулся, заключается в том, что apply plugin: 'org.greenrobot.greendao'
применяется для обоих ароматов, что приводит к сбою сценария сборки для вкуса, который не использует greenDAO.
apply plugin: 'com.android.application'
apply plugin: 'org.greenrobot.greendao'
android {
...
productFlavors {
lite {
...
}
pro {
...
}
}
}
greendao {
schemaVersion 1
}
dependencies {
proCompile 'org.greenrobot:greendao:3.2.0'
}
Как я могу решить эту проблему?
EDIT:
Чтобы быть более точным, это выглядит как greenDAO строит все классы, отмеченные @Entity, даже если они находятся в разных привкусов и помещает их в папку \build\generated\source\greendao\com\test\app\database
Это вызывает ошибки построения, как классы не могут быть (что, конечно, не могло быть, поскольку они определены в разных вкусах).
«который вызывает сценарий сборки на провал для аромата, который не использует greenDAO» - какова природа провала? Я лично не использовал greenDAO, но, как правило, плагин Gradle не будет изящным, когда он не сможет найти что-либо для обработки. – CommonsWare
@CommonsПожалуйста, спасибо за замечание, я попытался обновить вопрос, чтобы сделать его более конкретным. – WebMajstr
Ick. Это похоже на ошибку/ограничение в самом плагине. Самое лучшее, что я могу придумать, - это изолировать все ваши материалы greenDAO в библиотечном модуле, а затем вытащить этот библиотечный модуль только для соответствующего аромата (ов). Если вам нужно сохранить все это в одном модуле, теоретически вы можете написать пользовательскую задачу Gradle, которая удалит ненужные файлы, а затем организовать автоматическую запуск этой задачи после любой задачи, которую имеет плагин greenDAO, который генерирует эти файлы в аромате (s), для которого вы избегаете greenDAO. – CommonsWare