2017-02-17 2 views
0

Я использую 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 Это вызывает ошибки построения, как классы не могут быть (что, конечно, не могло быть, поскольку они определены в разных вкусах).

+0

«который вызывает сценарий сборки на провал для аромата, который не использует greenDAO» - какова природа провала? Я лично не использовал greenDAO, но, как правило, плагин Gradle не будет изящным, когда он не сможет найти что-либо для обработки. – CommonsWare

+0

@CommonsПожалуйста, спасибо за замечание, я попытался обновить вопрос, чтобы сделать его более конкретным. – WebMajstr

+0

Ick. Это похоже на ошибку/ограничение в самом плагине. Самое лучшее, что я могу придумать, - это изолировать все ваши материалы greenDAO в библиотечном модуле, а затем вытащить этот библиотечный модуль только для соответствующего аромата (ов). Если вам нужно сохранить все это в одном модуле, теоретически вы можете написать пользовательскую задачу Gradle, которая удалит ненужные файлы, а затем организовать автоматическую запуск этой задачи после любой задачи, которую имеет плагин greenDAO, который генерирует эти файлы в аромате (s), для которого вы избегаете greenDAO. – CommonsWare

ответ

0

В настоящее время greenDao не поддерживает это. Исправлена ​​ошибка, связанная с этим, на своем трекере по проблеме на GitHub, и будем надеяться, что он будет рассмотрен в ближайшее время.

Ссылка на вопрос: https://github.com/greenrobot/greenDAO/issues/587

Смежные вопросы