ย้ายข้อมูลบิลด์ไปยังแคตตาล็อกเวอร์ชัน

แคตตาล็อกเวอร์ชัน Gradle ช่วยให้คุณเพิ่มและรักษาทรัพยากร Dependency และปลั๊กอินด้วยวิธีที่รองรับการปรับขนาด การใช้แคตตาล็อกเวอร์ชัน Gradle ช่วยให้จัดการทรัพยากร Dependency และปลั๊กอินได้ง่ายขึ้น เมื่อคุณมีหลายโมดูล แทนการฮาร์ดโค้ด ชื่อและเวอร์ชันของทรัพยากร Dependency ในไฟล์บิลด์แต่ละรายการและอัปเดตแต่ละไฟล์ เมื่อใดก็ตามที่คุณต้องการอัปเกรดทรัพยากร Dependency คุณสามารถสร้าง แคตตาล็อกเวอร์ชันของทรัพยากร Dependency ที่โมดูลต่างๆ อ้างอิงได้ วิธีที่ปลอดภัยตามประเภทด้วยความช่วยเหลือจาก Android Studio

หน้านี้ให้ข้อมูลพื้นฐานเกี่ยวกับการย้ายข้อมูลแอป Android ของคุณไปยัง แคตตาล็อกเวอร์ชัน ดูข้อมูลเพิ่มเติมได้ที่ เพิ่มทรัพยากร Dependency ของบิลด์และเอกสารประกอบของ Gradle

สร้างไฟล์แคตตาล็อกเวอร์ชัน

เริ่มต้นด้วยการสร้างไฟล์แคตตาล็อกเวอร์ชัน ใน gradle ของโปรเจ็กต์ราก ให้สร้างไฟล์ชื่อ libs.versions.toml Gradle มองหาแคตตาล็อก ในไฟล์ libs.versions.toml โดยค่าเริ่มต้น เราจึงขอแนะนำให้ใช้ชื่อเริ่มต้นนี้

ในไฟล์ libs.versions.toml ให้เพิ่มส่วนต่อไปนี้

[versions]

[libraries]

[plugins]

ส่วนต่างๆ จะใช้ดังต่อไปนี้

  • ในบล็อก versions ให้กำหนดตัวแปรที่เก็บเวอร์ชันของ ทรัพยากร Dependency และปลั๊กอิน คุณใช้ตัวแปรเหล่านี้ในการบล็อกที่ตามมา (บล็อก libraries และ plugins)
  • ในบล็อก libraries ให้กำหนดทรัพยากร Dependency ของคุณ
  • กำหนดปลั๊กอินในบล็อก plugins

ขั้นตอนการย้ายข้อมูล

เราขอแนะนำให้คุณทำตามขั้นตอนตามลำดับที่ระบุไว้ บิลด์สามารถใช้ได้ ทรัพยากร Dependency และปลั๊กอินจากสคริปต์บิลด์และแคตตาล็อกได้พร้อมกัน ดังนั้น ใช้เวลาในการย้ายข้อมูลทรัพยากร Dependency และปลั๊กอินทีละรายการ

กระบวนการย้ายข้อมูลมีดังนี้

  1. เพิ่มรายการใหม่ลงในแคตตาล็อก
  2. ซิงค์โปรเจ็กต์ Android
  3. แทนที่การประกาศสตริงก่อนหน้าด้วยตัวเข้าถึงความปลอดภัยประเภทแคตตาล็อก

ย้ายข้อมูลทรัพยากร Dependency

เพิ่มรายการสำหรับทรัพยากร Dependency แต่ละรายการทั้งในส่วน versions และ libraries ของไฟล์ libs.versions.toml ซิงค์โปรเจ็กต์ แล้วแทนที่ ในไฟล์บิลด์พร้อมด้วยชื่อแคตตาล็อก

ข้อมูลโค้ดนี้จะแสดงไฟล์ build.gradle.kts ก่อนที่จะนำ การพึ่งพา:

Kotlin

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

}

ดึงดูด

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

}

ข้อมูลโค้ดนี้แสดงวิธีกำหนด Dependency ในเวอร์ชัน ไฟล์แคตตาล็อก:

[versions]
ktx = "1.9.0"

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

การตั้งชื่อที่แนะนำสำหรับบล็อกทรัพยากร Dependency ในแคตตาล็อกคือรูปแบบเคบับ (เช่น androidx-ktx) ให้ดียิ่งขึ้น ความช่วยเหลือเกี่ยวกับการเติมโค้ด ในไฟล์บิลด์

ในไฟล์ build.gradle.kts ของแต่ละโมดูลที่ต้องใช้ทรัพยากร Dependency กำหนดทรัพยากร Dependency ด้วยชื่อที่กำหนดไว้ในไฟล์ TOML

Kotlin

dependencies {
   implementation(libs.androidx.ktx)

}

ดึงดูด

dependencies {
   implementation libs.androidx.ktx

}

ย้ายข้อมูลปลั๊กอิน

เพิ่มรายการสำหรับปลั๊กอินแต่ละรายการทั้งในส่วนเวอร์ชันและส่วนปลั๊กอินของ ไฟล์ libs.versions.toml ซิงค์โปรเจ็กต์ แล้วแทนที่ การประกาศในบล็อก plugins{} ในไฟล์บิลด์ที่มีแคตตาล็อก

ข้อมูลโค้ดนี้จะแสดงไฟล์ build.gradle.kts ก่อนที่จะนำ ปลั๊กอิน:

Kotlin

// 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 บล็อกแคตตาล็อก รายการเป็นแบบเคบับ (เช่น android-application) เพื่อให้ ความช่วยเหลือเกี่ยวกับการเติมโค้ด ในไฟล์บิลด์

โค้ดต่อไปนี้แสดงวิธีกำหนดปลั๊กอิน com.android.application ใน ไฟล์ build.gradle.kts ระดับบนสุดและโมดูล ใช้ alias สำหรับปลั๊กอิน ที่มาจากไฟล์แคตตาล็อกเวอร์ชันและidสำหรับปลั๊กอินที่ไม่ได้ส่ง จากไฟล์แคตตาล็อกเวอร์ชัน เช่น ปลั๊กอินการประชุม

Kotlin

// 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

}

ดูข้อมูลเพิ่มเติม

ดูข้อมูลเกี่ยวกับตัวเลือกเพิ่มเติมสำหรับการกำหนดค่าแคตตาล็อกเวอร์ชันได้ที่ แหล่งข้อมูลเหล่านี้

ปัญหาที่ทราบ

แคตตาล็อกเวอร์ชัน Gradle ยังอยู่ระหว่างการพัฒนา สำหรับข้อมูลเพิ่มเติมเกี่ยวกับ สิ่งที่ยังไม่รองรับ โปรดดูที่ ปัญหาที่ทราบและข้อจำกัด