AXV

Kutubxonalar va versiyalar

dependencies, versiya raqamlari, version catalog, force, exclude, SDK versiyalari

10-sinfAdvanced Android5-hafta · 15-dars

Bugun nimalarni o'rganamiz?

dependencies

Kutubxonani ulash

Versiyalar

Raqam ma'nosi va ziddiyatlar

Version catalog

Versiyalarni markazda boshqarish

Takrorlash

free va paid flavor hamda debug va release bo'lsa, nechta variant bo'ladi?

2 x 2 = 4 ta variant.
01

dependencies

Kutubxonani ulash

Kutubxona qanday keladi

dependenciesyozildi Sync Now Gradleyuklaydi Kodda import Gradle kutubxonani ombordan olib keladi

Retrofit va Coil


dependencies {
    implementation("com.squareup.retrofit2:retrofit:2.9.0")
    implementation("io.coil-kt:coil-compose:2.3.0")
}

// settings.gradle.kts
dependencyResolutionManagement {
    repositories {
        google()
        mavenCentral()
    }
}
  
Qator tuzilishi: guruh:nom:versiya. Versiya yozilmasa yoki noto'g'ri yozilsa, build to'xtaydi.

Mini-test

implementation("a:b:2.9.0") da 2.9.0 nima?

Format: guruh:nom:versiya.
02

Versiyalar

Raqam ma'nosi va ziddiyatlar

Ziddiyatni hal qilish

Retrofit-> OkHttp Boshqa kutubxona-> OkHttp Gradle:yuqori versiya force: aniqversiya Ikki talab bo'lsa, Gradle yuqori versiyani oladi

force va exclude


configurations.all {
    resolutionStrategy {
        force("com.squareup.okhttp3:okhttp:4.9.3")
    }
}

dependencies {
    implementation("com.squareup.retrofit2:retrofit:2.9.0") {
        exclude(group = "org.example", module = "unused-module")
    }
}
  
force ni ehtiyotkorlik bilan ishlating: majburiy versiya boshqa kutubxonani buzishi mumkin. exclude loyiha hajmini kamaytiradi.

Mini-test

1.0.0-beta03 versiyasi haqida to'g'ri gap?

Alpha va beta barqaror emas, stable nashr nashrga tayyor.
03

Version catalog

Versiyalarni markazda boshqarish

Katalogdan foydalanish

libs.versions.toml [versions] [libraries] libs.retrofit Versiyani bir joyda yangilang

libs.versions.toml va dependencies


[versions]
retrofit = "2.9.0"
coil = "2.3.0"

[libraries]
retrofit = { module = "com.squareup.retrofit2:retrofit", version.ref = "retrofit" }
coil-compose = { module = "io.coil-kt:coil-compose", version.ref = "coil" }

# app/build.gradle.kts
# implementation(libs.retrofit)
# implementation(libs.coil.compose)
  
Katalogdagi coil-compose nomi kodda libs.coil.compose bo'lib yoziladi (defis nuqtaga aylanadi).

Mini-test

Katalogda coil-compose bo'lsa, kodda qanday yoziladi?

Defis nuqta bilan almashtiriladi.

Qo'lda yozish va katalog

Qo'lda

implementation("...retrofit:2.9.0"): versiya har joyda alohida
VS

Katalog bilan

implementation(libs.retrofit): versiya libs.versions.toml da

Katalog yangilashni va moslikni osonlashtiradi.

Atamalar. Bosing

Dependency

bosing

Loyiha tayanadigan tashqi kutubxona

Transitive

bosing

Kutubxonaning o'zi talab qiladigan boshqa kutubxonalar

force

bosing

Aniq versiyani majburlash

exclude

bosing

Keraksiz bog'liqlikni olib tashlash

Kutubxona qo'shish tartibi

1. Toping

Rasmiy hujjatdan guruh:nom:versiya ni oling.

2. Yozing

dependencies {} yoki katalogga qo'shing.

3. Sync

Sync Now; xato bo'lsa logni o'qing.

Versiya turlari

YozuvMa'nosiIshlatish
2.9.0stablenashr uchun
1.0.0-beta03betaehtiyotkorlik bilan
0.28.1-alphaalphafaqat sinov uchun
1.0.0-rc01release candidatenashrga yaqin

Pastga bosing: xato bo'lsa

Dependency xatolarini tuzatish

  1. Build oynasidagi birinchi qizil qatorni o'qing.
  2. Versiya raqami va harflarni (katta-kichik) tekshiring.
  3. Ziddiyat bo'lsa, force yoki kutubxonani yangilang.

Katalogga o'tamiz


dependencies {
    implementation("com.squareup.retrofit2:retrofit:2.9.0")
}
  

Katalogga o'tamiz


dependencies {
    implementation(libs.retrofit)
}
  

Kutubxonalar raqamlarda

0
versiya yozuv turi: stable, beta, alpha
0
katalog bo'limi: versions, libraries
0
joyda versiyani yangilash yetadi

Katalog bilan versiya bitta joyda boshqariladi.

Amaliy topshiriq 20 daqiqa

OsonRetrofit ulash: Module-level faylga Retrofit 2.9.0 ni ulang.
O'rtaVersiya ma'nosi: 2.9.0, 1.0.0-beta03, 0.28.1-alpha versiyalarining qaysi birini nashr uchun tanlaysiz va nega?
O'rtaKatalog yozish: Retrofit va Coil ni libs.versions.toml ga ko'chiring va dependencies da libs... bilan ishlating.
QiyinOkHttp ziddiyati: Retrofit bilan kelgan OkHttp versiyasini 4.9.3 ga majburlang.
QiyinTransitive ni olib tashlash: Retrofit dan org.example:unused-module bog'liqligini chiqarib tashlang.

Dars xulosasi

dependencies

implementation("guruh:nom:versiya") va Sync.

Versiyalar

Stable, beta, alpha; force va exclude.

Katalog

libs.versions.toml va libs.retrofit.

Uyga vazifa: Retrofit, Coil ulash va katalogga ko'chirish.

Keyingi dars: Gradle tasks va xatolar

Gradle so'rovlarini bajarish, xatolarni aniqlash

6-hafta · 16-dars