implementation, api, compileOnly, runtimeOnly, testImplementation, androidTestImplementation
10-sinfAdvanced Android6-hafta · 18-darsKim ko'radi?
Qachon kerak
testImplementation va boshqalar
Ziddiyat qaysi buyruq bilan ko'riladi?
Kim ko'radi?
// core/build.gradle.kts
dependencies {
implementation("com.google.code.gson:gson:2.10.1") // faqat core ichida
api("com.squareup.retrofit2:retrofit:2.9.0") // app ham ko'radi
}
// app/build.gradle.kts
dependencies {
implementation(project(":core"))
}
implementation yozing. api keraksiz yozilsa, modullar orasida ortiqcha bog'liqlik va sekin build paydo bo'ladi.Kutubxonani boshqa modullarga ham ochish uchun qaysi tur?
api bog'liqlikni ochiq qiladi.Qachon kerak
dependencies {
implementation("io.coil-kt:coil-compose:2.3.0") // kompilyatsiya + ish vaqti
compileOnly("javax.annotation:jsr250-api:1.0") // faqat kompilyatsiya
runtimeOnly("org.postgresql:postgresql:42.7.3") // faqat ish vaqti
}
compileOnly kutubxonasi APK ga tushmaydi: ish vaqtida kerak bo'lsa, ilova «class topilmadi» xatosi beradi.compileOnly kutubxona APK ga qo'shiladimi?
testImplementation va boshqalar
dependencies {
implementation("io.coil-kt:coil-compose:2.3.0")
testImplementation("junit:junit:4.13.2")
androidTestImplementation("androidx.test.espresso:espresso-core:3.5.1")
}
implementation bilan yozsangiz, u release APK ga tushadi va hajmni oshiradi.JUnit uchun qaysi tur to'g'ri?
apiimplementationEng tor ko'rinishni tanlang.
Faqat joriy modul ichida ko'rinadi
Boshqa modullarga ham ochiladi
Faqat kompilyatsiya vaqtida
Faqat ish vaqtida
Bu kutubxona kimga kerak?
Faqat menga: implementation; boshqalarga: api.
Faqat test uchun: test turlari.
| Tur | Ko'rinish | Misol |
|---|---|---|
implementation | joriy modul | Coil |
api | boshqa modullar ham | core dagi Retrofit |
compileOnly | faqat kompilyatsiya | annotatsiya |
runtimeOnly | faqat ish vaqti | drayver |
testImplementation | unit test | JUnit |
androidTestImplementation | qurilma testi | Espresso |
Pastga bosing: tekshirish
core moduliga kutubxonani implementation bilan ulang.app dan uning sinfini ishlatib ko'ring: xato chiqadi.api ga o'zgartiring va xato yo'qolganini ko'ring.
api("com.google.code.gson:gson:2.10.1")
implementation("com.google.code.gson:gson:2.10.1")
Eng ko'p ishlatiladigani: implementation.
core dagi Gson faqat core ichida ishlatiladi. Qaysi tur to'g'ri?core Retrofit ni app ga ochishi kerak. Yozing.core da Retrofit (api), Gson (implementation); app core ga bog'lansin.app Gson ni ishlatdi, core da u implementation. Nima bo'ladi, qanday tuzatasiz?Ko'rinish: faqat modul yoki barcha modullar.
Faqat kompilyatsiya yoki faqat ish vaqti.
testImplementation, androidTestImplementation.
Uyga vazifa: turlarni core va app modullarida qo'llash.
7-hafta: mavzu kartaga qarang
7-hafta · 19-dars