عندما تكون التبعية شيئًا آخر غير مكتبة محلية أو شجرة ملفات، يبحث Gradle عن الملفات في أي مستودعات على الإنترنت يتم تحديدها في القسم dependencyResolutionManagement { repositories {...} }
من ملف settings.gradle
. يحدّد ترتيب إدراج كل مستودع الترتيب الذي يبحث به Gradle في المستودعات عن كل تبعية للمشروع.
على سبيل المثال، إذا كانت إحدى التبعيات متاحة من المستودعَين A وB، وأدرجت A أولاً، سينزّل Gradle التبعية من المستودع A.
تحدّد مشاريع Android Studio الجديدة تلقائيًا مستودع Maven من Google ومستودع Maven المركزي كمواقع للمستودعات في ملف settings.gradle
الخاص بالمشروع، كما هو موضّح أدناه:
Kotlin
dependencyResolutionManagement { repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) repositories { google() mavenCentral() } }
Groovy
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() } }
Groovy
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' } } }
لمزيد من المعلومات، يمكنك الاطّلاع على دليل مستودعات Gradle.
مستودع Maven من Google
تتوفّر أحدث إصدارات مكتبات Android التالية من مستودع Maven التابع لشركة Google:
- مكتبات AndroidX
- مكتبة "مكوّنات بنية التطبيق"
- مكتبة Constraint Layout
- AndroidX Test
- مكتبة ربط البيانات
- مكتبة "تطبيقات Android الفورية"
- Wear OS
- خدمات Google Play
- مكتبة الفوترة في Google Play
- Firebase
يمكنك الاطّلاع على جميع العناصر المتاحة في فهرس مستودع Maven من Google (راجِع أدناه الوصول الآلي).
لإضافة إحدى هذه المكتبات إلى الإصدار، أدرِج مستودع 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/". } }
Groovy
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 المتوفّرة بلا إنترنت من مدير SDK.
بعد ذلك، يمكنك إضافة هذه المكتبات إلى حظر dependencies
كالمعتاد.
يتم حفظ المكتبات المتاحة بلا إنترنت في
android_sdk/extras/
.