אם התלות היא לא ספרייה מקומית או עץ קבצים, 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:
- ספריות AndroidX
- ספריית רכיבי הארכיטקטורה
- ספריית Constraint Layout
- AndroidX Test
- ספריית Databinding
- ספריית אפליקציות ללא התקנה ל-Android
- Wear OS
- Google Play Services
- ספריית החיובים ב-Google Play
- Firebase
כל פריטי המידע שנוצרו זמינים באינדקס של מאגר 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/.