אם התלות היא לא בספרייה מקומית או בעץ קבצים, מערכת 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 Library
- 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/
.