Мудро, если вы хотите скрыть L1, просто добавьте его в свой проект с помощью ключевого слова "реализация".Таким образом, он не попадет на путь потребителя.Теперь это не означает, что L1 мгновенно упаковывается в L2.Обычные бинарные файлы упаковывают только свои классы, и ожидается, что внешние классы будут поставляться из репозитория.Таким образом, у вас есть два возможных пути:
1.-Загрузите L1 и L2 в какое-то хранилище.Обратите внимание, что указанный репозиторий не обязательно должен быть публичным, вы можете установить свой собственный репозиторий и предоставить учетные данные пользователям.Это наименее болезненный путь в долгосрочном сценарии.
2.-Создайте убер аар / жир аар.Есть несколько плагинов, которые вы можете использовать для этого.Например это one , который находится в активной разработке.Или вы можете использовать плагин Maven для Android и создать L2 с помощью Maven;в этом случае любой плагин maven для Uber двоичных файлов должен работать.Плагин maven для Android совместим с форматом проекта gradle, поэтому вам потребуется только файл POM.Очевидно, что если вы используете дополнительные Gradle-плагины для сборки L2, это может оказаться невозможным.
3. Запакуйте все классы L1 внутри L2.Например, вы можете создать файл aar вручную.Предостережение в том, что обслуживание станет кошмаром.По сути, вы вернетесь к ANT-подобному сценарию, и существует множество причин, по которым люди избегают работать с муравьем.Если L1 изменится, будет больно.Кроме того, конечный файл не будет работать, так как вам нужно будет также отследить ВСЕ переходные зависимости L1 и добавить их в путь L2, чтобы они были импортированы.Если по какой-то причине люди, предоставившие вам L1, сделали что-то похожее, вы покорны.
4. - Предоставьте пользователям файлы L1 и L2, чтобы они добавили их в свои папки lib.В этом случае, даже если L1 импортируется как «реализация», он попадет в путь, так как практически все просто импортируют всю папку libs.
Все сказано, вам нужно выбрать яд.Моя рекомендация?Создайте частное репо (для этого вы даже можете использовать github).Это наименее болезненный вариант, вы можете ограничить доступ к пользователям в любое время, и если это необходимо для обработки пользовательских сборок для всех из них, это можно сделать, просто изменив artifactId / groupID.На всех других путях есть ошибки, которые в определенный момент доставят вам неприятности.