Remote-Repositories verwalten

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

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

Kotlin


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

Cool


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

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

Kotlin


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

Cool


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

Sie können auch 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")
    }
}

Cool


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 in der Anleitung zu Gradle Repositories.

Maven-Repository von Google

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

Sie können alle verfügbaren Artefakte im Maven-Repository-Index von Google sehen (siehe unten für den programmatischen Zugriff).

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

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

Cool


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 zum dependencies-Block Ihres Moduls hinzu. Die appcompat-Bibliothek sieht beispielsweise so aus:

Kotlin


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

Cool


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

Wenn Sie jedoch versuchen, eine ältere Version der oben genannten Bibliotheken zu verwenden und die Abhängigkeit fehlschlägt, ist sie im Maven-Repository nicht verfügbar. Sie müssen 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 von maven.google.com/master-index.xml abrufen. Anschließend können Sie die Bibliotheksnamen und -versionen jeder Gruppe hier ansehen:

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 hier 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 enthalten ist.

Offline-Repository aus SDK Manager

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

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

Die Offlinebibliotheken werden in android_sdk/extras/ gespeichert.