انتقال ساخت به کاتالوگ‌های نسخه

کاتالوگ‌های نسخه Gradle به شما امکان می‌دهند وابستگی‌ها و افزونه‌ها را به‌صورت مقیاس‌پذیر اضافه و نگهداری کنید. استفاده از کاتالوگ‌های نسخه Gradle مدیریت وابستگی‌ها و افزایه‌ها را درصورت داشتن چندین واحد آسان‌تر می‌کند. به‌جای کدنویسی سخت نام‌ها و نسخه‌های وابستگی در فایل‌های ساخت جداگانه و به‌روزرسانی هر ورودی هروقت که لازم است وابستگی را ارتقا دهید، می‌توانید کاتالوگ نسخه مرکزی از وابستگی‌ها ایجاد کنید که ماژول‌های مختلف بتوانند با کمک Android Studio به‌روش ایمن ازنظر نوع به آن ارجاع دهند.

این صفحه اطلاعات پایه‌ای درباره انتقال برنامه Android به کاتالوگ‌های نسخه ارائه می‌دهد. برای کسب اطلاعات بیشتر، به افزودن وابستگی‌های ساخت و اسناد Gradle مراجعه کنید.

ایجاد فایل کاتالوگ نسخه

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

در فایل libs.versions.toml، این بخش‌ها را اضافه کنید:

[versions]

[libraries]

[plugins]

بخش‌ها به‌صورت زیر استفاده می‌شوند:

  • در بلوک versions، متغیرهایی را تعریف کنید که نسخه‌های وابستگی‌ها و افزایه‌های شما را نگه می‌دارند. از این متغیرها در بلوک‌های بعدی (بلوک‌های libraries و plugins) استفاده می‌کنید.
  • در بلوک libraries، وابستگی‌هایتان را تعریف کنید.
  • در بلوک plugins، افزایه‌هایتان را تعریف کنید.

مراحل انتقال

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

فرایند انتقال به این صورت است:

  1. ورودی جدید را به کاتالوگ اضافه کنید.
  2. پروژه Android خود را همگام‌سازی کنید.
  3. اعلام رشته قبلی را با دسترسی ایمن ازنظر نوع کاتالوگ جایگزین کنید.

انتقال وابستگی‌ها

برای هر وابستگی، ورودی‌ای در هر دو بخش versions و libraries فایل libs.versions.toml اضافه کنید. پروژه‌تان را همگام‌سازی کنید و سپس اعلام‌های آن‌ها را در فایل‌های ساخت با نام کاتالوگشان جایگزین کنید.

این تکه‌کد فایل build.gradle.kts را قبل‌از برداشتن وابستگی نشان می‌دهد:

کاتلین

dependencies {
    implementation("androidx.core:core-ktx:1.9.0")

}

شیک

dependencies {
    implementation 'androidx.core:core-ktx:1.9.0'

}

این تکه‌کد نشان می‌دهد که چگونه وابستگی را در فایل کاتالوگ نسخه تعریف کنید:

[versions]
ktx = "1.9.0"

[libraries]
androidx-ktx = { group = "androidx.core", name = "core-ktx", version.ref = "ktx" }

نام‌گذاری توصیه‌شده برای بلوک وابستگی‌ها در کاتالوگ‌ها dash-case (مانند androidx-ktx) است تا دستیار تکمیل کد در فایل‌های ساخت شما بهتر عمل کند.

در فایل build.gradle.kts هر واحدی که به وابستگی نیاز دارد، وابستگی‌ها را با نام‌هایی که در فایل TOML تعریف کرده‌اید تعریف کنید.

کاتلین

dependencies {
   implementation(libs.androidx.ktx)

}

شیک

dependencies {
   implementation libs.androidx.ktx

}

انتقال افزایه‌ها

برای هر افزونه، ورودی‌ای در هر دو بخش نسخه‌ها و افزونه‌های فایل libs.versions.toml اضافه کنید. پروژه‌تان را همگام‌سازی کنید، سپس اعلام‌های آن‌ها را در بلوک plugins{} در فایل‌های ساخت با نام‌های کاتالوگشان جایگزین کنید.

این تکه‌کد فایل build.gradle.kts را قبل‌از برداشتن افزونه نشان می‌دهد:

کاتلین

// Top-level `build.gradle.kts` file
plugins {
   id("com.android.application") version "7.4.1" apply false

}

// Module-level `build.gradle.kts` file
plugins {
   id("com.android.application")

}

شیک

// Top-level `build.gradle` file
plugins {
   id 'com.android.application' version '7.4.1' apply false

}

// Module-level `build.gradle` file
plugins {
   id 'com.android.application'

}

این تکه‌کد نحوه تعریف کردن افزایه را در فایل کاتالوگ نسخه نشان می‌دهد:

[versions]
androidGradlePlugin = "7.4.1"

[plugins]
android-application = { id = "com.android.application", version.ref = "androidGradlePlugin" }

همانند وابستگی‌ها، قالب‌بندی توصیه‌شده برای ورودی‌های کاتالوگ بلوک plugins، dash-case (مانند android-application) است تا دستیار تکمیل کد در فایل‌های ساخت شما بهتر عمل کند.

کد زیر نحوه تعریف افزایه com.android.application را در فایل‌های build.gradle.kts سطح بالا و سطح ماژول نشان می‌دهد. از alias برای افزایه‌هایی که از فایل کاتالوگ نسخه می‌آیند و از id برای افزایه‌هایی که از فایل کاتالوگ نسخه نمی‌آیند، مثل افزایه‌های قراردادی، استفاده کنید.

کاتلین

// Top-level build.gradle.kts
plugins {
   alias(libs.plugins.android.application) apply false

}

// module build.gradle.kts
plugins {
   alias(libs.plugins.android.application)

}

شیک

// Top-level build.gradle
plugins {
   alias libs.plugins.android.application apply false

}

// module build.gradle
plugins {
   alias libs.plugins.android.application

}

بیشتر بدانید

برای آشنایی با گزینه‌های بیشتر برای پیکربندی کاتالوگ نسخه، این منابع را ببینید: