จัดการที่เก็บระยะไกล

เมื่อทรัพยากร Dependency เป็นค่าอื่นที่ไม่ใช่ไลบรารีในเครื่องหรือแผนผังไฟล์ 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

คุณดูอาร์ติแฟกต์ทั้งหมดที่มีได้ที่ดัชนีที่เก็บ 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'
}

อย่างไรก็ตาม หากคุณพยายามใช้ไลบรารีข้างต้นเวอร์ชันเก่าและใช้ทรัพยากร 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

สำหรับไลบรารีที่ไม่มีให้บริการจากที่เก็บ Maven ของ Google (โดยปกติจะเป็นไลบรารีเวอร์ชันเก่า) คุณต้องดาวน์โหลดแพ็กเกจ Google Repository ออฟไลน์จาก SDK Manager

จากนั้นคุณจะเพิ่มไลบรารีเหล่านี้ไปยังบล็อก dependencies ได้ตามปกติ

ระบบจะบันทึกคลังแบบออฟไลน์ไว้ใน android_sdk/extras/