כשהתלות היא לא ספרייה מקומית או עץ קבצים,
Gradle מחפשת את הקבצים במאגרים באינטרנט שמצוינים
חסימה אחת (dependencyResolutionManagement { repositories {...} }
) מתוך
קובץ settings.gradle
. הסדר שבו תציגו את כל המאגרים קובע
הסדר שבו Gradle מחפשת במאגרים של כל תלות של פרויקט.
לדוגמה, אם קיימת תלות זמינה גם ממאגר A וגם ממאגר B,
הראשונה, Gradle, מורידה את התלות ממאגר A.
כברירת מחדל, בפרויקטים חדשים ב-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:
- ספריות AndroidX
- ספריית רכיבי הארכיטקטורה
- ספריית פריסת אילוצים
- בדיקת AndroidX
- ספרייה לקישור נתונים
- ספרייה של אפליקציות ללא התקנה ל-Android
- Wear OS
- Google Play Services
- ספריית החיובים ב-Google Play
- Firebase
כדי לראות את כל פריטי המידע הזמינים שנוצרו בתהליך הפיתוח (Artifact) אפשר להיכנס לכתובת אינדקס מאגר 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 Library
נראה כך:
Kotlin
dependencies { implementation("com.android.support:appcompat-v7:28.0.0") }
מגניב
dependencies { implementation 'androidx.appcompat:appcompat:1.6.1' }
עם זאת, אם אתה מנסה להשתמש בגרסה ישנה יותר של למעלה והתלות שלכם נכשלת, היא לא זמינה ב-Maven וצריך לקבל במקום זאת את הספרייה מהמאגר אופליין.
גישה פרוגרמטית
כדי לקבל גישה פרוגרמטית לפריטי Maven של Google, אפשר לקבל רשימת XML של קבוצות פריטי מידע שנוצרו בתהליך פיתוח (Artifact) מהכתובת 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 Repository מ-SDK Manager.
אחר כך אפשר יהיה להוסיף את הספריות האלה לבלוק dependencies
כרגיל.
הספריות אופליין נשמרות ב
android_sdk/extras/