אם התלות היא לא בספרייה מקומית או בעץ קבצים, מערכת 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 Repositories.
מאגר Maven של Google
הגרסאות העדכניות ביותר של הספריות הבאות ל-Android זמינות ממאגר Maven של Google:
- ספריות AndroidX
- ספריית רכיבי הארכיטקטורה
- ספריית Constraint Layout
- AndroidX Test
- ספריית Databinding
- ספריית אפליקציות ללא התקנה ל-Android
- Wear OS
- שירותי Google Play
- Google Play Billing Library
- 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
בספריות שלא זמינות ממאגר Google Maven (בדרך כלל גרסאות ישנות יותר של ספריות), צריך להוריד את חבילת מאגר Google במצב אופליין מכלי ה-SDK Manager.
אחר כך תוכלו להוסיף את הספריות האלה לבלוק dependencies
כרגיל.
הספריות במצב אופליין נשמרות בתיקייה android_sdk/extras/
.