เมื่อการพึ่งพาไม่ใช่ไลบรารีในเครื่องหรือลําดับชั้นไฟล์
Gradle จะค้นหาไฟล์ในที่เก็บข้อมูลออนไลน์ที่ระบุไว้ในบล็อก dependencyResolutionManagement { repositories {...} }
ของไฟล์ settings.gradle
ลำดับที่คุณแสดงรายการที่เก็บแต่ละแห่งจะกำหนดลำดับที่ Gradle จะค้นหาที่เก็บสำหรับทรัพยากร Dependency ของแต่ละโปรเจ็กต์
เช่น หากมีทรัพยากรที่ต้องการจากทั้งที่เก็บ 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() } }
ดึงดูด
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
- ไลบรารีคอมโพเนนต์สถาปัตยกรรม
- ไลบรารีการออกแบบจุดยึด
- การทดสอบ AndroidX
- ไลบรารีการเชื่อมโยงข้อมูล
- คลัง Instant App ของ 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/". } }
ดึงดูด
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' }
อย่างไรก็ตาม หากคุณพยายามใช้ไลบรารีข้างต้นเวอร์ชันเก่าและใช้ทรัพยากร Dependency ไม่สำเร็จ หมายความว่าไลบรารีดังกล่าวใช้งานไม่ได้ในที่เก็บ 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
สำหรับไลบรารีที่ไม่มีให้บริการจากที่เก็บ Maven ของ Google (โดยปกติจะเป็นไลบรารีเวอร์ชันเก่า) คุณต้องดาวน์โหลดแพ็กเกจ Google Repository ออฟไลน์จาก SDK Manager
จากนั้นคุณจะเพิ่มไลบรารีเหล่านี้ลงในบล็อก dependencies
ได้ตามปกติ
ไลบรารีแบบออฟไลน์จะบันทึกไว้ใน android_sdk/extras/