0

Я создаю проект библиотеки Android с помощью Android Studio. Тип модуля: 'com.android.library' in gradle.build файл. Этот модуль имеет ряд зависимостей:Предупреждение о зависимостях градиента проекта библиотеки Android

dependencies {  
    compile 'com.squareup.retrofit:retrofit:1.9.0' 
    compile 'com.squareup.okhttp:okhttp:2.3.0' 
} 

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

ответ

1

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

Ну, в некоторой степени это произойдет автоматически, так как их компиляция потерпит неудачу.

Если вы распространяете этот AAR как артефакт в репозитории, метаданные репозитория (например, POM-файл для репозитория Maven) могут содержать информацию об этих зависимостях. Многие системы сборки (Gradle, Maven и т. Д.) Будут использовать это, чтобы автоматически загружать эти зависимости по мере необходимости, когда разработчик использует ваш артефакт.

Если вы решили распространять этот ААР другими способами (например, QR-код размером с небольшую гору), вам нужно будет сказать разработчикам, что им необходимо включить эти зависимости через документацию какого-то рода.

Предвидя последующий вопрос ...

я должен быть в состоянии опубликовать .aar закрыт исходный артефакт через репозиторий Maven?

Несомненно. В то время как Maven Central и JCenter настроены для использования с открытым исходным кодом, вы, безусловно, можете иметь свое собственное репо. Это просто каталог с определенным содержимым. Например, у меня есть собственное репо для моих библиотек с открытым исходным кодом, и, хотя мои библиотеки имеют открытый исходный код, в репо нет ничего о том, что потребует репозиториев для хранения открытого кода.

+0

Можете ли вы указать на всеобъемлющий учебник/руководство, сделав это? – 2cupsOfTech

+0

@ 2cupsOfTech: http://blog.blundell-apps.com/locally-release-an-android-library-for-jcenter-or-maven-central-inclusion/ В этом блоге публикуется публикация в местном репозитории Maven, который это просто каталог в локально доступной файловой системе. Это может быть все, что вам нужно, если потребители библиотеки являются локальными (например, команда с общим файловым сервером). Если вы хотите опубликовать это онлайн, вы можете использовать официальный сервер репо (Sonatype, Bintray и т. Д.) Или использовать статический хост (я использую Amazon S3). – CommonsWare

+0

@ 2cupsOfTech: Единственным ограничением для последнего подхода является то, что запросы HTTP 'GET' каталога должны возвращать содержимое каталога. Это может быть предоставлено вам вашим веб-хостом. S3 этого не делает, поэтому я предварительно сгенерировал этот HTML-код с помощью скрипта 'bash', который я нашел где-то внутри Interwebs. Затем я использую инструмент командной строки AWS ('aws') для синхронизации моего локального репо до S3 (' aws s3 sync'), чтобы опубликовать репозиторий с созданными списками каталогов. – CommonsWare

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