5-modul · 4-dars: Maven
Daraja: O'rta
Maven. Java kutubxonalari va Stream bo‘yicha nazariya, amaliy namuna va mustaqil mashq.
Tushuntirish
## Dars maqsadi Maven tushunchalarini farqlash, nima uchun kerakligini izohlash va kichik misolda qo‘llash.
## Nazariya Java loyihalari uchun build-avtomatlashtirish va bog'liqlik (dependency) boshqaruvi vositasi; `pom.xml` orqali sozlanadi.
Bog'liqliklarni avtomatik yuklab olish, loyihani qurish (compile/test/package) va standart, qayta ishlatiladigan build jarayonini ta'minlash uchun.
## Intervyuga tayyorgarlik ### Maven nima? Java loyihalari uchun build-avtomatlashtirish va bog'liqlik (dependency) boshqaruvi vositasi; `pom.xml` orqali sozlanadi.
### Maven nima uchun kerak? Bog'liqliklarni avtomatik yuklab olish, loyihani qurish (compile/test/package) va standart, qayta ishlatiladigan build jarayonini ta'minlash uchun.
### Dependency-larda scope nima ma'noni anglatadi? Bog'liqlik qaysi bosqichda (compile, test, runtime, provided) kerakligi va classpath ga qachon qo'shilishini belgilaydi. Masalan `test` — faqat test paytida.
## Versiya va aniqlik Java misollari Java 17 bazasiga mo‘ljallangan. JDK/JRE paketlash usuli distributivga bog‘liq; JVM bayt-kodni interpretatsiya va JIT orqali bajarishi mumkin. GC uchun aniq bajarilish vaqtiga kafolat yo‘q; finalization resurs yopish usuli emas. Thread stop/suspend/resume kabi eski metodlar amaliy yechim emas. Koddagi import, klass yoki tashqi kutubxona kontekstini tekshiring.
Manbadagi 17 dars oldingi o‘quv arxividagi 10 guruhga birlashtirilgan: Lombok/Faker va Stream/Collectors hamda HttpClient/Gson/Reflection/Annotations birgalikda o‘rganiladi.
## Manbalar [Moduldagi savollar yo‘nalishi](https://github.com/jlkesh/pdp_online_java_lessons/blob/main/interviewquestions/5-module.md) [Rasmiy qo‘llanma](https://dev.java/learn/) [Sizning avvalgi savol-javob arxivingiz](https://lightyer.uz/java/interview.html)
Kod quyida o‘quv namunasi sifatida berilgan. To‘liq ilova uchun import, dependency va konfiguratsiya kerak bo‘lishi mumkin. SQLni faqat ajratilgan test bazasida bajaring.
Kod misoli
# pom.xml bor loyiha ichida:
mvn test
mvn package
mvn dependency:tree
# compile, test, package — lifecycle bosqichlari.
Keng tarqalgan xatolar
- Versiyani ko'rsatmasdan bog'liqlik qo'shish - qurilish takrorlanmaydigan bo'lib qoladi.
- Test kutubxonasini `compile` scope da qo'shish - u yakuniy jar ga tushadi.
Mashqlar
- `mvn dependency:tree` bilan bog'liqliklar daraxtini ko'ring va konflikt bor-yo'qligini ayting.
- Bitta kutubxonani `test` scope ga o'tkazib, natijani tekshiring.
Teglar: pdp, modul-05, nazariya