Состояние управления зависимостями проекта Android

Мы стандартизируем нашу инфраструктуру для разработки Android, и мы пытаемся включить управление зависимостями в наши проекты в библиотеке Android. Мой текущий трек использует плагин maven android с m2e-android . Мы загрузили артефакты Android в наш репозиторий Artifactory с помощью Android SDK Deployer . У нас также есть внутренняя структура с несколькими библиотеками, которые мы можем импортировать в наши проекты, и для большей части она отлично работает.

Проблема, с которой мы сталкиваемся сейчас, заключается в том, что зависимости apklib, содержащие файлы ресурсов, трудно настроить. Плагин maven может правильно настроить путь к классам, но если apklib имеет файлы ресурсов, на которые должен ссылаться родительский проект Android, Eclipse не сможет их найти, если вы не проверите проект библиотеки и не привязаете его к родительскому проекту через ADT.

После того, как вы прочтете обсуждение m2e-android на вопрос https://github.com/rgladwell/m2e-android/issues/8 , https://stackoverflow.com/questions/6269816/creating-closed-source-android-libraries#answer- 6270768 и APKLIB не устанавливаются в Maven Repo , я не уверен, что maven – это путь, пока ADT не будет правильно поддерживать библиотеки закрытых источников apk.

Я хотел бы знать, как вы управляете этими зависимостями от своих проектов Android. Какие стратегии существуют, кроме использования Maven?

Для справки, вот что мы пробовали до сих пор.

  1. Нет управления зависимостями. Все необходимые банки хранятся в папке lib и перемещаются в репозиторий управления версиями. Библиотечные проекты настраиваются как вложенные папки и переносятся на репозиторий исходного кода для каждого проекта, в котором они используются. Также настроены настройки проекта Eclipse. Проект построен со стандартным сценарием ADT Ant.
  2. Jar в зависимости от папки и библиотек в качестве подмодулей git. Проект построен со стандартным сценарием ADT Ant.
  3. Управление зависимостями с maven, включая проекты библиотек с упаковкой apklib. Проблема с файлами ресурсов в апклибах.

Вы можете получить представление о том, как разработчики Android Android решают проблемы с зависимостями в этом видео: как Facebook встроен Facebook для Android .

Для этого они используют Бак. Buck – это система сборки для Android, которая поощряет создание небольших модулей многократного использования, состоящих из кода и ресурсов. Бак находится в github

Возможно, это не лучшее решение для вас, но, возможно, для кого-то другого.

С появлением Android Studio и Gradle мы больше не сталкиваемся с проблемами с зависимостями проекта; Android или иначе.

Gradle поддерживает зависимости Maven в форматах jar или apklib. Популярные библиотеки были экспортированы в формат apklib (aar) и доступны через Maven.