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

כשהתלות היא בספרייה מקומית או בעץ קבצים אחר, 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()
    }
}

Groovy


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()
    }
}

Groovy


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")
    }
}

Groovy


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'
        }
    }
}

מידע נוסף זמין במדריך Repositories של 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/".
    }
}

Groovy


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")
}

Groovy


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