Как управлять удаленными репозиториями

Если зависимость не является локальной библиотекой или деревом файлов, Gradle ищет файлы в онлайн-хранилищах, указанных в блоке dependencyResolutionManagement { repositories {...} } файла settings.gradle. Порядок, в котором вы перечисляете хранилища, определяет порядок, в котором Gradle ищет в них зависимости проекта. Например, если зависимость доступна в хранилищах A и B, а вы указали первым хранилище A, Gradle скачает зависимость из хранилища A.

По умолчанию в новых проектах Android Studio в качестве расположений репозиториев в файле settings.gradle проекта указываются репозиторий Maven от Google и центральный репозиторий Maven, как показано ниже:

Kotlin

dependencyResolutionManagement {
    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
    repositories {
        google()
        mavenCentral()
    }
}

Яркий

dependencyResolutionManagement {
    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
    repositories {
        google()
        mavenCentral()
    }
}

Если вы хотите найти что-то в локальном хранилище, используйте mavenLocal():

Kotlin

dependencyResolutionManagement {
    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
    repositories {
        google()
        mavenCentral()
        mavenLocal()
    }
}

Яркий

dependencyResolutionManagement {
    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
    repositories {
        google()
        mavenCentral()
        mavenLocal()
    }
}

Вы также можете объявить определенные хранилища Maven или Ivy, как показано ниже.

Kotlin

dependencyResolutionManagement {
    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
    repositories {
        maven(url = "https://repo.example.com/maven2")
        maven(url = "file://local/repo/")
        ivy(url = "https://repo.example.com/ivy")
    }
}

Яркий

dependencyResolutionManagement {
    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
    repositories {
        maven {
            url 'https://repo.example.com/maven2'
        }
        maven {
            url 'file://local/repo/'
        }
        ivy {
            url 'https://repo.example.com/ivy'
        }
    }
}

Дополнительную информацию можно найти в руководстве по репозиториям Gradle.

Репозиторий Google Maven

Последние версии следующих библиотек Android доступны в репозитории Google Maven:

Все доступные артефакты можно посмотреть в индексе репозитория Google Maven (информацию о программном доступе см. ниже).

Чтобы добавить одну из этих библиотек в сборку, включите репозиторий Google Maven в файл build.gradle.kts верхнего уровня:

Kotlin

dependencyResolutionManagement {

    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
    repositories {
        google()

        // If you're using a version of Gradle lower than 4.1, you must instead use:
        // maven {
        //     url = "https://maven.google.com"
        // }
        // An alternative URL is "https://dl.google.com/dl/android/maven2/".
    }
}

Яркий

dependencyResolutionManagement {

    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
    repositories {
        google()

        // If you're using a version of Gradle lower than 4.1, you must instead use:
        // maven {
        //     url 'https://maven.google.com'
        // }
        // An alternative URL is 'https://dl.google.com/dl/android/maven2/'.
    }
}

Затем добавьте нужную библиотеку в блок dependencies модуля. Например,библиотека appcompat выглядит так:

Kotlin

dependencies {
    implementation("com.android.support:appcompat-v7:28.0.0")
}

Яркий

dependencies {
    implementation 'androidx.appcompat:appcompat:1.7.0'
}

Однако если вы пытаетесь использовать более старую версию указанных выше библиотек и зависимость не работает, значит, она недоступна в репозитории Maven и вам нужно получить библиотеку из офлайн-репозитория.

Доступ к алгоритмическим продажам

Чтобы получить программный доступ к артефактам Maven от Google, вы можете скачать XML-список групп артефактов по адресу maven.google.com/master-index.xml. Затем для любой группы вы можете посмотреть названия и версии библиотек:

maven.google.com/group_path/group-index.xml

Например, библиотеки в группе android.arch.lifecycle перечислены на странице maven.google.com/android/arch/lifecycle/group-index.xml.

Вы также можете скачать файлы POM и JAR по следующим ссылкам:

maven.google.com/group_path/library/version /library-version.ext

Пример: maven.google.com/android/arch/lifecycle/compiler/1.0.0/compiler-1. 0.0.pom.

Офлайн-хранилище из SDK Manager

Если библиотека недоступна в репозитории Google Maven (обычно это касается старых версий), скачайте офлайн-пакет Google Repository из SDK Manager.

Затем вы можете добавить эти библиотеки в блок dependencies как обычно.

Офлайн-библиотеки сохраняются в папке android_sdk/extras/.