JavaRush /Kurslar /All lectures for UZ purposes /Maven-loyihani yaratish

Maven-loyihani yaratish

All lectures for UZ purposes
Daraja, Dars
Mavjud

Loyihaning ob'ekt modeli

Maven birinchi navbatda loyihaning tavsifini standartlashtirdi. Maven'dan oldin har bir IDE'da o'ziga xos project-fayl bor edi, u loyihaning va uning tuzilishining ma'lumotlarini saqlardi (ko'pincha ikkilamchi ko'rinishda).

Maven umumiy ochiq standartni XML asosida taklif etdi, unda turli xil teglardan foydalanib, loyiha, uni qanday yig'ish kerakligi va qanday bog'liqliklar borligini tavsiflaydi. Loyihaning tasviri odatda pom.xml nomli bitta faylga joylashtirilgan.

pom.xml faylining misoli:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">

   <modelVersion>4.0.0</modelVersion>

    <groupId>example.com</groupId>
   <artifactId>example</artifactId>
   <version>1.0-SNAPSHOT</version>

    <dependencies>
       <dependency>
           <groupId>commons-io</groupId>
           <artifactId>commons-io</artifactId>
        <version>2.6</version>
        </dependency>
   </dependencies>


</project>

Bu misolda uch narsani yozilgan:

  • maven-loyihasining versiyasi to'g'risida ma'lumot — ko'k rangda.
  • Loyiha haqida ma'lumot — qizil rangda.
  • Foydalanilayotgan kutubxonalar to'g'risida ma'lumot — yashil rangda.

Keling, pom-faylning tuzilishini batafsilroq ko'rib chiqamiz.

Maven-loyihasining tuzilishi

Va darhol savol: o'tgan misolda nimani qiziq deb o'ylaysiz? Unda loyihaning o'zi haqida hech qanday ma'lumot yo'q! Java-fayllar, resurslar, xususiyatlar fayllari, html, yig'ish skriptlari va shunga o'xshashlar qaerda ekanligi haqida hech qanday ma'lumot yo'q.

Javob oddiy — Maven loyihaning tuzilishini standartlashtirdi. Loyiha ichidagi kodingizni tashkil qilish uchun bir nechta variantlar mavjud va eng keng tarqalgan ko'rinish shunday:

Idea standart loyihalaridan keyin tuzilish biroz notanish, lekin bu universal. Hayotingizda duch kelishingiz mumkin bo'lgan loyihalarning 90% shu kabi papkalar tuzilmasiga ega bo'ladi.

Agar siz Maven-loyihasini (IDEA yoki konsol orqali) yaratsangiz, u keltirilgan ko'rinishni oladi. Bu erda hamma narsaning qanday qurilganligini ko'rib chiqamiz.

src papkasi loyihaning dastlabki kodini o'z ichiga oladi, deb o'ylaymiz. Unda ikkita kichik papka bor: main va test.

/src/main/java papkasi loyihaning barcha Java klasslari uchun ildiz hisoblanadi. Agar sizda com.javarush.Cat klassi bo'lsa, u /src/main/java/com/javarush/Cat.java papkasida bo'ladi. Agar sizda tekst yoki ikkilamchi resurslar bo'lsa, ular /src/main/resources papkasida saqlanishi kerak.

/src/test papkasining tuzilishi /src/main papkasining tuzilishiga o'xshaydi, ammo unda testlar va ularning resurslari mavjud. Maven loyiha yig'ilishida kerakli testlarni avtomatik ravishda ishga tushirishni biladi, lekin buni boshqa bir ma'ruzada gaplashamiz.

Loyihada yana /target papkasi bor, Maven loyihani yig'ilgandan so'ng u erda saqlaydi. Katta loyihalarda ko'pincha murakkab yig'ish ssenariylari mavjud bo'lgani uchun, bu papkada ko'p narsa saqlanishi mumkin.

/target papkasining boshqa vazifasi — bu yig'ishlarning oraliq natijalarini keshlash. Katta loyihani yig'ishda Maven faqat o'zgargan qismini qayta tuzishi mumkin, shuning uchun tuzish vaqti bir necha marta tezlashadi.

Va nihoyat, loyihaning ildizida pom.xml fayli yotadi. Unda loyiha haqida kerakli barcha ma'lumotlar bor, buni quyida batafsilroq muhokama qilamiz.

pom.xml'ning tuzilishi

Pom-fayl xml ekanligini aytishda boshlaylik, shuning uchun standart sarlavhalar va namespaces haqida ma'lumot mavjud. Bu faqat XML standarti bilan bog'liq, shuning uchun bu haqida ko'p gapirmaymiz. Buni ko'zda tutadi:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

        …

</project>

Odatda, <project> tegining ichida pom-fayl standart versiyasi tavsifi bo'lib keladi. Odatda, 4.0 bo'ladi. Bu biz uchun qiziq emas.

Bizni qiziqtiradigan birinchi qatorlar shunday ko'rinadi:

   <modelVersion>4.0.0</modelVersion>

   <groupId>com.sample.app</groupId>
  <artifactId>new-app</artifactId>
  <version>1.0-SNAPSHOT</version>

Qo'shimcha ravishda, Maven standartining tasvirlovchi loyihasida biz nimalarni tavsiflayotganimizni (dastur, loyiha, modul, kutubxona va boshqalar) bir necha marta aniqlashning hojati yo'q, buni bir so'z bilan artefakt deb atashadi. Maven yaratuvchilarining standartizatsiyani sevishiga shubha yo'q.

Ko'rayotgan uchta teg:

  • groupId – ilova tegishli bo'lgan paket, domen nomini qo'shib;
  • artifactId – noyob mantiqiy kalit (loyiha ID);
  • version – loyiha versiyasi.

Uchta ko'rsatilgan parametr har qanday artefaktni aniq tavsiflash uchun yetarli.

Loyihani tavsiflashdan keyin odatda loyiha foydalanadigan artefaktlar (kutubxonalar) ro'yxati keladi. Bu taxminan shunday ko'rinadi:

   <dependencies>

       <dependency>
           <groupId>commons-io</groupId>
           <artifactId>commons-io</artifactId>
           <version>2.6</version>
       </dependency>

   </dependencies>

Ushbu misolda biz loyihamıza commons-io kutubxonasini, commons-io paketidan, 2.6 versiyasi bilan qo'shamiz.

Yig'ish vaqtida Maven global omborida bunday kutubxonani qidiradi va uni loyihangizga qo'shadi. Va, albatta, buni faqat Maven emas.

IDEA Maven bilan qanday ishlaydi

Intellij IDEA Maven bilan juda yaxshi ishlaydi. U bunday loyihalarni ochishni, mustaqil ravishda yaratishni, turli xil yig'ish ssenariylarini ishga tushirishni va ulanish kutubxonalarini yaxshi tushunishni biladi.

Hattoki, yaqindan buyon, unda o'z Maven bor, lekin siz uni o'zingiz o'rnatib va sozlashingizni bilishingiz kerak. IDEA'da ikki xil Maven bo'lishi mumkin, shuning uchun siz ular ikkita ekanligini bilishingiz foydalidir.

IDEA'da yangi Maven-loyihasini qanday yaratish:

Files > New Project menyusini bosamiz. Chapdagi menyuda New Project bandini tanlaymiz.

Maven-loyiha

Ba'zi bandlarni tushuntirib o'tamiz:

  1. Loyiha nomi;
  2. Loyiha papkasi;
  3. Loyiha tili — Java;
  4. Loyiha turi — Maven.

Quyidagi Advanced Settings bo'limida IDEA bizning yangi loyihamiz uchun goupID, artifactID va versiyasini belgilashni taklif qiladi. Ushbu ma'lumotlarni keyinchalik osonlikcha o'zgartirish mumkin. Taklif qilinganlarni tanlaymiz yoki o'zimiz kiritamiz:

Maven-loyiha 2

Keyingi bosqichda loyihani kerakli joyda yaratamiz. Yakunda biz quyidagi tuzilmani ko'ramiz:

Maven-loyiha 3

Klasslar va paketlar java papkasida yaratish kerak, bu haqida allaqachon gaplashgan edik. Sen buni osonlikcha uddalaysan, deb o'ylayman. Biz tayyormiz va keyingi bosqichga o'tamiz, lekin bir oz orqaga qaytib, biroz e'tibor berilmagan masalani tushuntiramiz.

Izohlar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION