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

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

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

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

כדי לגשת באופן פרוגרמטי לארטיפקטים של 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

אם הספרייה לא זמינה במאגר Maven של Google (בדרך כלל גרסאות ישנות יותר של הספרייה), צריך להוריד את חבילת Google Repository אופליין מ-SDK Manager.

לאחר מכן, אפשר להוסיף את הספריות האלה לבלוק dependencies כרגיל.

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