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

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

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

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

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

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

[versions]

[libraries]

[plugins]

ส่วนต่างๆ มีการใช้งานดังนี้

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

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

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

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

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

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

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

ข้อมูลโค้ดนี้แสดงไฟล์ build.gradle.kts ก่อนนำการอ้างอิงออก

Kotlin

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

}

Groovy

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" }

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

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

Kotlin

dependencies {
   implementation(libs.androidx.ktx)

}

Groovy

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")

}

Groovy

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

เช่นเดียวกับ Dependency รูปแบบที่แนะนำสำหรับรายการpluginsแคตตาล็อกบล็อก คือรูปแบบ Kebab Case (เช่น 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)

}

Groovy

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

}

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

}

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

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