ניהול מאגרים מרוחקים

אם התלות היא לא בספרייה מקומית או בעץ קבצים, מערכת Gradle מחפשת את הקבצים במאגרי מידע באינטרנט שמצוינים בבלוק dependencyResolutionManagement { repositories {...} } בקובץ settings.gradle. הסדר שבו מופיע כל מאגר קובע את הסדר שבו Gradle מחפש במאגרים את יחסי התלות של כל פרויקט. לדוגמה, אם יחסי תלות זמינים גם במאגר א' וגם במאגר ב', ואתם מפרטים את מאגר א' קודם, Gradle מוריד את יחסי התלות ממאגר א'.

כברירת מחדל, בפרויקטים חדשים ב-Android Studio מוגדר מאגר Maven של Google, וגם מאגר Maven המרכזי, כמיקומי מאגר בקובץ settings.gradle של הפרויקט, כמו שמוצג בהמשך:

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 Repositories.

מאגר Maven של Google

הגרסאות העדכניות ביותר של הספריות הבאות ל-Android זמינות ממאגר Maven של Google:

אפשר לראות את כל הארטיפקטים הזמינים באינדקס של מאגר Maven של Google (גישה באמצעות תוכנה מוסברת בהמשך).

כדי להוסיף אחת מהספריות האלה ל-build, צריך לכלול את מאגר Maven של Google בקובץ 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, ובמקום זאת אתם צריכים לקבל את הספרייה מהמאגר הלא מקוון.

גישה פרוגרמטית

כדי לקבל גישה תוכנתית לארטיפקטים של Google Maven, אפשר לקבל רשימת 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 במצב אופליין מה-SDK Manager.

אחר כך תוכלו להוסיף את הספריות האלה לבלוק dependencies כרגיל.

הספריות במצב אופליין נשמרות בתיקייה android_sdk/extras/.