Nếu bạn đã quen với việc định cấu hình bản dựng Android bằng Kotlin DSL, thì trang này sẽ cho bạn biết cách các cấu hình Kotlin DSL phổ biến liên kết với Lightbuild.
Các ví dụ trên trang này sử dụng DSL Kotlin và trình bổ trợ Android cho Gradle (AGP) 9.0 trở lên, bao gồm cả hỗ trợ Kotlin tích hợp sẵn.
Tệp bản dựng
Bảng sau đây cho thấy tệp bản dựng Kotlin DSL tương đương của từng tệp bản dựng Lightbuild:
| Kotlin DSL | Lightbuild | Mục đích |
|---|---|---|
settings.gradle.kts |
project.lightbuild.yaml |
Tên dự án, mô-đun và kho lưu trữ |
build.gradle.kts và gradle-wrapper.properties gốc |
project.lightbuild.yaml |
Phiên bản công cụ xây dựng và chuỗi công cụ |
Học phần build.gradle.kts |
Học phần lightbuild.yaml |
Loại mô-đun, chế độ cài đặt Android, phần phụ thuộc và kiểm thử |
gradle.lockfile |
resolved.deps |
Theo dõi phiên bản phần phụ thuộc |
Cài đặt dự án
Trong Kotlin DSL, tệp settings.gradle.kts xác định tên của dự án, các mô-đun và kho lưu trữ để phân giải các phần phụ thuộc:
dependencyResolutionManagement {
repositories {
google()
mavenCentral()
}
}
rootProject.name = "MyApp"
include(":app")
include(":app-core")
Trong Lightbuild, tệp project.lightbuild.yaml xác định các chế độ cài đặt tương tự:
project:
name: MyApp
modules:
- app
- app-core
repositories:
- google
- mavenCentral
Bảng sau đây so sánh các chế độ cài đặt trên toàn dự án:
| Ý tưởng | Kotlin DSL | Lightbuild |
|---|---|---|
| Tên dự án | rootProject.name |
project.name |
| Mô-đun | include(":app") |
modules |
| Kho lưu trữ | repositories trong dependencyResolutionManagement |
repositories |
| Kho lưu trữ Maven tuỳ chỉnh | maven { url = uri("https://maven.example.com/releases") } |
maven có name và url |
| Thông tin đăng nhập của kho lưu trữ | credentials trong khối maven |
credentials có các khoá mà bạn xác định trong local.properties |
| Phiên bản công cụ xây dựng | Phiên bản Gradle trong gradle-wrapper.properties và phiên bản AGP trong khối plugins |
lightbuild.version |
| Phiên bản Kotlin | Tích hợp sẵn trong AGP. Để sử dụng phiên bản mới hơn, hãy thêm kotlin-gradle-plugin vào classpath buildscript. |
build.kotlin.version |
| Phiên bản Java | kotlin { jvmToolchain(17) } |
build.java.version |
Loại mô-đun và trình bổ trợ
Trong Kotlin DSL, bạn chọn loại mô-đun bằng cách áp dụng một trình bổ trợ và áp dụng các trình bổ trợ khác để thêm các tính năng như KSP. Trong Lightbuild, bạn đặt type của mô-đun và Lightbuild sẽ áp dụng các tính năng mà cấu hình của bạn cần:
| Ý tưởng | Kotlin DSL | Lightbuild |
|---|---|---|
| Mô-đun ứng dụng | id("com.android.application") |
type: application |
| Mô-đun thư viện | id("com.android.library") |
type: library |
| Mô-đun Kotlin Multiplatform (KMP) | id("org.jetbrains.kotlin.multiplatform") |
Tính năng chưa được hỗ trợ |
| Kotlin | Tích hợp vào AGP 9.0 trở lên | Tích hợp sẵn |
| lợi điểm bán hàng chính | id("com.google.devtools.ksp") |
Tự động áp dụng khi bạn khai báo kspProcessors |
| Vùng đệm giao thức | id("com.google.protobuf") |
com.android.tools.lightbuild.protobuf trong optionalFeatures |
| Danh mục phiên bản | libs.versions.toml tệp |
Tính năng chưa được hỗ trợ |
| Trình bổ trợ khác | Áp dụng trình bổ trợ Gradle | Tính năng chưa được hỗ trợ |
Cài đặt Android
Trong Kotlin DSL, bạn định cấu hình các chế độ cài đặt Android trong khối android của tệp build.gradle.kts của mô-đun:
plugins {
id("com.android.application")
}
android {
namespace = "com.example.myapp.app"
compileSdk = 36
defaultConfig {
applicationId = "com.example.myapp"
minSdk = 24
targetSdk = 36
versionCode = 1
versionName = "1.0"
}
}
Trong Lightbuild, bạn định cấu hình các chế độ cài đặt tương tự trong khối android của tệp lightbuild.yaml của mô-đun:
platform: android
type: application
android:
namespace: com.example.myapp.app
compileSdk:
version:
release:
apiLevel: 36
minSdk:
version:
release:
apiLevel: 24
targetSdk:
version:
release:
apiLevel: 36
applicationId: com.example.myapp
versionCode: 1
versionName: "1.0"
Bảng sau đây so sánh các chế độ cài đặt này:
| Cài đặt | Kotlin DSL | Lightbuild |
|---|---|---|
| Không gian tên | namespace |
namespace |
| SDK biên dịch | compileSdk = 36 |
compileSdk.version.release.apiLevel: 36 |
| SDK tối thiểu | minSdk = 24 trong defaultConfig |
minSdk.version.release.apiLevel: 24 |
| SDK mục tiêu | targetSdk = 36 trong defaultConfig |
targetSdk.version.release.apiLevel: 36 |
| Mã đơn đăng ký | applicationId trong defaultConfig |
applicationId |
| Mã phiên bản | versionCode trong defaultConfig |
versionCode |
| Tên phiên bản | versionName trong defaultConfig |
versionName |
| Ký bản phát hành | signingConfigs và signingConfig trong loại bản dựng release |
packaging.release.signing |
Phần phụ thuộc
Trong Kotlin DSL, bạn khai báo các phần phụ thuộc trong khối dependencies, sử dụng các cấu hình như implementation:
dependencies {
implementation(project(":app-core"))
implementation("androidx.core:core-ktx:1.18.0")
}
Trong Lightbuild, bạn liệt kê các phần phụ thuộc của mô-đun trong module và các thư viện bên ngoài trong maven:
android:
dependencies:
module:
- //app-core
maven:
- androidx.core:core-ktx:1.18.0
Kotlin DSL sử dụng các cấu hình khác, chẳng hạn như api, compileOnly và runtimeOnly, để kiểm soát cách một mô-đun sử dụng phần phụ thuộc:
dependencies {
api(project(":data"))
compileOnly("androidx.annotation:annotation:1.9.1")
}
Trong Lightbuild, bạn thêm chế độ cài đặt compile và runtime vào phần phụ thuộc:
android:
dependencies:
module:
- //data:
compile: public
maven:
- androidx.annotation:annotation:1.9.1:
runtime: off
Để biết thêm thông tin về các chế độ cài đặt này, hãy xem phần Cài đặt phần phụ thuộc.
Bảng sau đây so sánh các nội dung khai báo phần phụ thuộc phổ biến:
| Phần phụ thuộc | Kotlin DSL | Lightbuild |
|---|---|---|
| Mô-đun trong dự án của bạn | implementation(project(":app-core")) |
//app-core trong android.dependencies.module |
| Thư viện bên ngoài | implementation("group:artifact:version") |
group:artifact:version trong android.dependencies.maven |
| Phần phụ thuộc API | api("group:artifact:version") |
group:artifact:version ở android.dependencies.maven, có compile: public |
| Phần phụ thuộc chỉ biên dịch | compileOnly("group:artifact:version") |
group:artifact:version ở android.dependencies.maven, có runtime: off |
| Phần phụ thuộc chỉ trong thời gian chạy | runtimeOnly("group:artifact:version") |
group:artifact:version ở android.dependencies.maven, có compile: off |
| Trình xử lý KSP | ksp("group:artifact:version") |
group:artifact:version trong android.kspProcessors.maven |
| Phần phụ thuộc kiểm thử cục bộ | testImplementation("group:artifact:version") |
group:artifact:version trong android.tests.test.dependencies.maven |
| Phần phụ thuộc kiểm thử đo lường | androidTestImplementation("group:artifact:version") |
group:artifact:version trong android.tests.androidTest.dependencies.maven |
lợi điểm bán hàng chính
Trong Kotlin DSL, bạn áp dụng trình bổ trợ KSP và thêm trình xử lý bằng cấu hình ksp:
plugins {
id("com.android.library")
id("com.google.devtools.ksp")
}
dependencies {
implementation("com.squareup.moshi:moshi:1.15.2")
implementation("com.squareup.moshi:moshi-kotlin:1.15.2")
ksp("com.squareup.moshi:moshi-kotlin-codegen:1.15.2")
}
Trong Lightbuild, bạn thêm bộ xử lý vào khối kspProcessors và Lightbuild sẽ tự động áp dụng trình bổ trợ KSP:
type: library
android:
dependencies:
maven:
- com.squareup.moshi:moshi:1.15.2
- com.squareup.moshi:moshi-kotlin:1.15.2
kspProcessors:
maven:
- com.squareup.moshi:moshi-kotlin-codegen:1.15.2
Xét nghiệm
Trong Kotlin DSL, bạn đặt trình chạy kiểm thử đo lường trong defaultConfig và thêm các phần phụ thuộc kiểm thử bằng cấu hình testImplementation và androidTestImplementation:
android {
defaultConfig {
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
}
}
dependencies {
testImplementation("junit:junit:4.13.2")
androidTestImplementation("androidx.test.ext:junit:1.3.0")
androidTestImplementation("androidx.test.espresso:espresso-core:3.7.0")
}
Trong Lightbuild, bạn định cấu hình kiểm thử cục bộ trong tests.test và kiểm thử đo lường trong tests.androidTest:
android:
tests:
test:
dependencies:
maven:
- junit:junit:4.13.2
androidTest:
runner: androidx.test.runner.AndroidJUnitRunner
dependencies:
maven:
- androidx.test.ext:junit:1.3.0
- androidx.test.espresso:espresso-core:3.7.0
Lệnh tạo bản dựng
Với Kotlin DSL, bạn có thể tạo và kiểm thử từ dòng lệnh bằng cách chạy các tác vụ Gradle bằng trình bao bọc Gradle. Với Lightbuild, bạn sử dụng Lightbuild CLI.
| Nhiệm vụ | Trình bao bọc Gradle | Lightbuild CLI |
|---|---|---|
| Tạo mô-đun ứng dụng | ./gradlew :app:assembleDebug |
lightbuild build app |
| Xây dựng tất cả mục tiêu | ./gradlew assemble |
lightbuild build |
| Chạy kiểm thử cục bộ của mô-đun | ./gradlew :app-core:test |
lightbuild test app-core:hostTest |
| Chạy kiểm thử đo lường của mô-đun | ./gradlew :app-core:connectedAndroidTest |
lightbuild test app-core:deviceTest |
| Chạy tất cả chương trình kiểm thử | ./gradlew test connectedAndroidTest |
lightbuild test |
| Xoá kết quả bản dựng và bộ nhớ đệm | ./gradlew clean |
lightbuild clean |
Để biết thêm thông tin, hãy xem bài viết Xây dựng ứng dụng từ dòng lệnh và Xây dựng dự án Lightbuild từ dòng lệnh.
Khoá phần phụ thuộc
Với Kotlin DSL, khoá phần phụ thuộc là không bắt buộc: bạn bật tính năng này trong tập lệnh bản dựng, sau đó ghi tệp khoá bằng cách chạy bản dựng có cờ --write-locks. Trong Lightbuild, mỗi mô-đun đều có một tệp resolved.deps ghi lại các phần phụ thuộc đã được giải quyết của mô-đun. Lightbuild sẽ tự động tạo tệp này. Giống như với tệp khoá Gradle, hãy kiểm tra các tệp resolved.deps của bạn để quản lý phiên bản.
Để khoá các phần phụ thuộc, chẳng hạn như trong bản dựng CI, hãy thêm cờ --locked-dependencies vào lightbuild resolve hoặc lightbuild test. Với cờ này, lệnh sẽ không thành công nếu tệp resolved.deps không khớp với các phần phụ thuộc của mô-đun, thay vì cập nhật tệp:
lightbuild resolve --locked-dependencies
Tính năng không được hỗ trợ
Lightbuild không hỗ trợ các tính năng Kotlin DSL sau:
- Danh mục phiên bản và trình bổ trợ quy ước
- Trình bổ trợ tuỳ chỉnh
- Phiên bản sản phẩm. Thay vào đó, hãy tạo một mô-đun ứng dụng riêng cho từng phiên bản của ứng dụng. Để biết thêm thông tin, hãy xem phần Nhiều mô-đun ứng dụng.
- Mô-đun Kotlin Multiplatform (KMP)
- Phân giải phần phụ thuộc thông qua máy chủ proxy
Ngoài ra, một dự án không thể kết hợp các mô-đun Kotlin DSL và Lightbuild. Để biết các vấn đề đã biết, hãy xem ghi chú phát hành của Lightbuild.
Đề xuất cho bạn
- Lưu ý: văn bản có đường liên kết sẽ hiện khi JavaScript tắt
- Tài liệu tham khảo về cấu hình Lightbuild
- Cấu trúc dự án Lightbuild
- Bắt đầu sử dụng Lightbuild