แคตตาล็อกเวอร์ชัน 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 และปลั๊กอินทีละรายการ
กระบวนการย้ายข้อมูลมีดังนี้
- เพิ่มรายการใหม่ลงในแคตตาล็อก
- ซิงค์โปรเจ็กต์ Android
- แทนที่การประกาศสตริงก่อนหน้าด้วยตัวเข้าถึงที่ปลอดภัยตามประเภทแคตตาล็อก
ย้ายข้อมูลทรัพยากร 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 }
ดูข้อมูลเพิ่มเติม
หากต้องการดูตัวเลือกเพิ่มเติมสำหรับการกำหนดค่าแคตตาล็อกเวอร์ชัน โปรดดูแหล่งข้อมูลต่อไปนี้
- รูปแบบไฟล์ TOML ของแคตตาล็อกเวอร์ชัน จะบันทึกตัวเลือกเพิ่มเติมสำหรับการกำหนดค่าไฟล์แคตตาล็อก
- Now in Android คือ แอปตัวอย่างที่ใช้แคตตาล็อกเวอร์ชัน