Maven-репозиторий (Maven Central) — это репозиторий, размещённый на сайте Sonatype.org, а более точно сам репозиторий находится тут.
Если в проекте используется репозиторий Bintray, который является частью JCenter или же JCenter, то стоит оперативно задуматься о миграции на Maven Central.
Так как компания JFrog внесла важные изменения, а именно объявила о закрытии JCenter, а соответственно и Bitray. А для разработчиков Android для зависимостей их приложений это означает следующее:
с 31 марта 2021 г. — библиотеки в JCenter больше не обновляются.
с 1 февраля 2022 г. — JCenter будет полностью закрыт.
Означает это только одно — необходимо отключить JCenter и Bintray, чтобы продолжать получать обновления для библиотек и SDK, которые они используют. Большинство библиотек уже доступны в Maven Central, поэтому миграция — это безопасный и простой процесс.
Давайте разберемся, как это сделать!
Откройте корневой build.gradle
Удалите строчку с репозиторием Bintray.
Найдите строки, в которых указано jcenter(), и добавьте mavenCentral() перед каждой из них (обязательно добавьте mavenCentral() в обоих местах, где находится jcenter()).
После этого изменения ваш build.gradle будет выглядеть так:
// Top-level build file.
buildscript {
repositories {
google()
mavenCentral() //Новая линия
jcenter() //Позже удалим
// NOTE: не меняйте записи, внесенные ранее
}
dependencies {
classpath "com.android.tools.build:gradle:4.1.2"
// NOTE: не меняйте записи, внесенные ранее
}
}
allprojects {
repositories {
google()
mavenCentral() // Новая линия
jcenter()//Позже удалим
// NOTE: не меняйте записи, внесенные ранее
}
}
Обратите внимание, что mavenCentral() должен находиться выше jcenter(). Это будет означать что mavenCentral() будет являться основным репозиторием, а jcenter() вспомогательным.
Синхронизируйте проект, нажав "Sync Now"
Но давайте все же удалим полностью jcenter()
В моем случае ошибок не обнаружилось, но если сообщения об ошибках получены, это означает, что этой библиотеки или SDK в вашем проекте нет в Maven Central — проверьте журнал сборки и свяжитесь с поставщиками этих зависимостей, чтобы получить рекомендации по их стратегии миграции.
Но имейте в виду, что JCenter больше не будет работать после 1 февраля 2022 года.
Комментарии (6)
Eleferen
20.01.2022 09:43"с 1 февраля 2022 г. — JCenter будет полностью закрыт " - какой источник данной информации? На сайте JCenter до сих пор висит информация о том, что загруженные репозитории доступны неопределенное время.
FirsofMaxim
21.01.2022 08:12У меня не сработало, но зато прошел вот такой трюк:
Заменить
jcenter()
наgradlePluginPortal().
Честно стырено отсюда.
tokarev
а что насчет зависимостей, которые также содержат jcenter()?