Pull to refresh

Как переключиться c JCenter на Maven Central

Reading time2 min
Views5.7K

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 года.

Tags:
Hubs:
Total votes 5: ↑1 and ↓4-2
Comments8

Articles