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

אם התלות היא לא בספרייה מקומית או בעץ קבצים, מערכת 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/.