Работа с экспортом сторонних библиотек при создании проекта lib

107
8

Я создаю проект библиотеки андроидов. В моей библиотеке используются сторонние библиотеки (например, guava и т.д.). Теперь некоторые другие команды должны использовать эту библиотеку, которую я создаю.

Мой вопрос заключается в том, что нужно делать с внешними библиотеками, которые я использую, предоставляя библиотеку фактический проект.

Немного вариантов, о которых я думал:

Экспортируйте сторонние библиотеки. Проблема. Если я экспортирую эти сторонние библиотеки, проект может столкнуться с некоторыми проблемами, такими как: a: если они уже используют эти сторонние библиотеки (с другой версией), они получат ошибки символа дублирования. Если они удаляют свои сторонние библиотеки, то некоторые классы могут существовать или не существовать. Также это будет означать, что каждый раз, когда какое-то приложение нуждается в моей библиотеке, это будет сложный кошмар интеграции.

Не экспортируйте сторонние библиотеки Проблема: приложение получит исключения времени выполнения, если классы сторонних lib, используемые моей библиотекой, не существуют в сторонних библиотеках, добавленных в приложение.

Пожалуйста, расскажите, что это лучший способ.

Благодарю!

спросил(а) 2020-04-04T01:03:36+03:00 3 месяца назад
1
Решение
77

Вот почему, где так много инструментов управления строительствоми. Используйте один из них. Я не уверен, каков предлагаемый в настоящее время инструмент построения сборки в классической разработке Android, но в проекте, отличном от Android, я бы использовал Ant + Ivy или Maven. Подход всегда один и тот же: вы определяете зависимости сторонней стороны, например, как компиляцию или зависимость времени выполнения для вашего проекта библиотеки. Каждый раз, когда у вас есть "полезная" версия вашей библиотеки, вы публикуете ее в общем репозитории, таком как Nexus, и что это для вас. С другой стороны, ваши коллеги используют вашу lib как зависимость. Инструмент управления построением будет обрабатывать эту зависимость как одну из ваших сторонних библиотек.

Если у вас нет какой-либо инфраструктуры построения и источника управления, теперь самое время получить ее, так как ваша проблема не может быть решена без такого элементарного инструментария.

ответил(а) 2020-04-04T01:12:41.175032+03:00 3 месяца назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема