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

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

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

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

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

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

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