مدیریت مخازن راه دور

وقتی وابستگی شما چیزی غیر از یک کتابخانه محلی یا درخت فایل باشد، Gradle به دنبال فایل‌های موجود در هر مخزن آنلاینی می‌گردد که در بلوک dependencyResolutionManagement { repositories {...} } از فایل settings.gradle شما مشخص شده باشد. ترتیبی که هر مخزن را فهرست می‌کنید، ترتیب جستجوی مخازن توسط Gradle را برای هر وابستگی پروژه تعیین می‌کند. به عنوان مثال، اگر یک وابستگی از هر دو مخزن A و B در دسترس باشد و شما ابتدا A را فهرست کنید، Gradle وابستگی را از مخزن A دانلود می‌کند.

به طور پیش‌فرض، پروژه‌های جدید اندروید استودیو، مخزن Maven گوگل و مخزن مرکزی Maven را به عنوان مکان‌های مخزن در فایل settings.gradle پروژه مشخص می‌کنند، همانطور که در زیر نشان داده شده است:

کاتلین

dependencyResolutionManagement {
    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
    repositories {
        google()
        mavenCentral()
    }
}

گرووی

dependencyResolutionManagement {
    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
    repositories {
        google()
        mavenCentral()
    }
}

اگر می‌خواهید چیزی را از یک مخزن محلی دریافت کنید، از mavenLocal() استفاده کنید:

کاتلین

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 را به صورت زیر تعریف کنید:

کاتلین

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 مراجعه کنید.

مخزن Maven گوگل

جدیدترین نسخه‌های کتابخانه‌های اندروید زیر از مخزن Maven گوگل در دسترس هستند:

شما می‌توانید تمام مصنوعات موجود را در فهرست مخزن Maven گوگل مشاهده کنید (برای دسترسی برنامه‌نویسی به زیر مراجعه کنید).

برای افزودن یکی از این کتابخانه‌ها به سیستم خود، مخزن Maven گوگل را در فایل build.gradle.kts سطح بالای خود قرار دهید:

کاتلین

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 به شکل زیر است:

کاتلین

dependencies {
    implementation("com.android.support:appcompat-v7:28.0.0")
}

گرووی

dependencies {
    implementation 'androidx.appcompat:appcompat:1.7.0'
}

با این حال، اگر می‌خواهید از نسخه قدیمی‌تر کتابخانه‌های فوق استفاده کنید و وابستگی شما با شکست مواجه شود، آنگاه آن در مخزن Maven موجود نیست و باید کتابخانه را از مخزن آفلاین دریافت کنید.

دسترسی برنامه‌نویسی‌شده

برای دسترسی برنامه‌نویسی‌شده به مصنوعات Maven گوگل، می‌توانید فهرست XML گروه‌های مصنوعات را از maven.google.com/master-index.xml دریافت کنید. سپس، برای هر گروه، می‌توانید نام و نسخه‌های کتابخانه آن را در آدرس زیر مشاهده کنید:

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/ ذخیره می‌شوند.