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, поэтому миграция — это безопасный и простой процесс.

Давайте разберемся, как это сделать!

  1. Откройте корневой build.gradle

  2. Удалите строчку с репозиторием Bintray.

  3. Найдите строки, в которых указано 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() вспомогательным.

  1. Синхронизируйте проект, нажав "Sync Now" 

Но давайте все же удалим полностью jcenter()

В моем случае ошибок не обнаружилось, но если сообщения об ошибках получены, это означает, что этой библиотеки или SDK в вашем проекте нет в Maven Central — проверьте журнал сборки и свяжитесь с поставщиками этих зависимостей, чтобы получить рекомендации по их стратегии миграции.

Но имейте в виду, что JCenter больше не будет работать после 1 февраля 2022 года.

Комментарии (6)


  1. tokarev
    18.01.2022 13:41

    а что насчет зависимостей, которые также содержат jcenter()?


  1. LeshaRB
    18.01.2022 16:44

    Суть данной статьи это как сделать replace jcenter -> mavenCentral ?


    1. K_Olia Автор
      20.01.2022 13:08

      в том числе, и задуматься над необходимостью перехода на mavenCentral


  1. Eleferen
    20.01.2022 09:43

    "с 1 февраля 2022 г. — JCenter будет полностью закрыт " - какой источник данной информации? На сайте JCenter до сих пор висит информация о том, что загруженные репозитории доступны неопределенное время.


    1. K_Olia Автор
      20.01.2022 13:07

      можно посмотреть на https://jfrog.com


  1. FirsofMaxim
    21.01.2022 08:12

    У меня не сработало, но зато прошел вот такой трюк:

    Заменить jcenter()наgradlePluginPortal().

    Честно стырено отсюда.