Remote-Repositories verwalten

Wenn es sich bei Ihrer Abhängigkeit nicht um eine lokale Bibliothek oder einen lokalen Dateibaum handelt, sucht Gradle nach den Dateien in den Online-Repositories, die im Block dependencyResolutionManagement { repositories {...} } Ihrer Datei settings.gradle angegeben sind. Die Reihenfolge, in der Sie die einzelnen Repositories auflisten, bestimmt die Reihenfolge, in der Gradle die Repositories nach den einzelnen Projektabhängigkeiten durchsucht. Wenn eine Abhängigkeit beispielsweise sowohl in Repository A als auch in Repository B verfügbar ist und Sie A zuerst auflisten, lädt Gradle die Abhängigkeit aus Repository A herunter.

Standardmäßig wird in neuen Android Studio-Projekten das Maven-Repository von Google und das Maven Central Repository als Repository-Speicherorte in der Datei settings.gradle des Projekts angegeben, wie unten gezeigt:

Kotlin

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

Groovy

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

Wenn Sie etwas aus einem lokalen Repository verwenden möchten, verwenden Sie mavenLocal():

Kotlin

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

Groovy

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

Oder Sie können bestimmte Maven- oder Ivy-Repositories so deklarieren:

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")
    }
}

Groovy

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'
        }
    }
}

Weitere Informationen finden Sie im Gradle-Leitfaden zu Repositories.

Maven-Repository von Google

Die neuesten Versionen der folgenden Android-Bibliotheken sind im Maven-Repository von Google verfügbar:

Alle verfügbaren Artefakte finden Sie im Maven-Repository-Index von Google (siehe unten für programmatischen Zugriff).

Wenn Sie eine dieser Bibliotheken in Ihren Build einfügen möchten, müssen Sie das Maven-Repository von Google in die Datei build.gradle.kts auf oberster Ebene einfügen:

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/".
    }
}

Groovy

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/'.
    }
}

Fügen Sie dann die gewünschte Bibliothek dem dependencies-Block Ihres Moduls hinzu. Die AppCompat-Bibliothek sieht beispielsweise so aus:

Kotlin

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

Groovy

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

Wenn Sie jedoch versuchen, eine ältere Version der oben genannten Bibliotheken zu verwenden und Ihre Abhängigkeit fehlschlägt, ist sie nicht im Maven-Repository verfügbar. In diesem Fall müssen Sie die Bibliothek stattdessen aus dem Offline-Repository abrufen.

Programmatischer Zugriff

Für den programmatischen Zugriff auf die Maven-Artefakte von Google können Sie eine XML-Liste der Artefaktgruppen unter maven.google.com/master-index.xml abrufen. Anschließend können Sie für jede Gruppe die Namen und Versionen der zugehörigen Bibliotheken so aufrufen:

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

Bibliotheken in der Gruppe „android.arch.lifecycle“ sind beispielsweise unter maven.google.com/android/arch/lifecycle/group-index.xml aufgeführt.

Sie können die POM- und JAR-Dateien auch unter folgenden Links herunterladen:

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

Beispiel: maven.google.com/android/arch/lifecycle/compiler/1.0.0/compiler-1. 0.0.pom.

Offlinerepository aus dem SDK-Manager

Für Bibliotheken, die nicht im Google Maven-Repository verfügbar sind (in der Regel ältere Bibliotheksversionen), müssen Sie das Offline-Paket Google Repository aus dem SDK Manager herunterladen.

Anschließend können Sie diese Bibliotheken wie gewohnt Ihrem dependencies-Block hinzufügen.

Die Offline-Mediatheken werden in android_sdk/extras/ gespeichert.