כשהתלות היא בספרייה מקומית או בעץ קבצים אחר, 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") } }
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:
- ספריות AndroidX
- ספריית רכיבי הארכיטקטורה
- ספריית פריסת אילוצים
- בדיקת AndroidX
- ספרייה לקישור נתונים
- ספרייה של אפליקציות ללא התקנה ל-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") }
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
לספריות שלא זמינות ממאגר Google Maven (בדרך כלל גרסאות ישנות יותר של הספרייה), צריך להוריד את החבילה אופליין של Google Repository מ-SDK Manager.
לאחר מכן תוכלו להוסיף את הספריות האלה לבלוק dependencies
כרגיל.
הספריות אופליין נשמרות ב-android_sdk/extras/
.