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

แคตตาล็อกเวอร์ชัน 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 ก่อนนำทรัพยากร Dependency ออก

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 ในแคตตาล็อกคือ Dash-case (เช่น 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" }

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

}

ดึงดูด

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

}

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

}

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

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