JavaRush /Java blogi /Random-UZ /4-qism: Maven asoslari

4-qism: Maven asoslari

Guruhda nashr etilgan
Ushbu material "Korxonani rivojlantirishga kirish" seriyasining bir qismidir. Oldingi maqolalar: 4-qism. Maven asoslari - 1Maven - bu loyihalarni boshqarish va qurish uchun vosita - Java dasturchisining haqiqiy yordamchisi. Bu ishning barcha bosqichlarida ishlab chiquvchining hayotini osonlashtiradi: loyiha tuzilmasini yaratish va kerakli kutubxonalarni ulashdan tortib, mahsulotni serverda joylashtirishgacha. Har qanday ramka bilan ishlashda siz Maven dan foydalanishingiz kerak bo'ladi. Keling, bugungi kunda uning asosiy funktsiyalarini ko'rib chiqamiz va ulardan qanday foydalanish kerakligini ko'rib chiqamiz.

Maven-ni bosqichma-bosqich o'rnatish

  1. Avval siz Mavenni ushbu havoladan yuklab olib o'rnatishingiz kerak .

  2. Keyinchalik, yuklab olingan arxivni ochishingiz va M2_HOME muhit o'zgaruvchisini ochilmagan arxiv joylashgan joyga havolaga o'rnatishingiz kerak. Masalan, C:\Program Files\maven\

  3. Hamma narsa o'rnatilganligini tekshirish uchun buyruq satriga yozing:

    mvn-versiyasi

  4. Agar Maven, Java va boshqalar uchun versiya ma'lumotlari ko'rsatilsa, siz borishga tayyormiz.

  5. Endi IntelliJIDEA-ni oching va yangi loyiha yarating. Birinchi oynada Maven-ni tanlang:

    4-qism. Maven asoslari - 2
  6. Keyingiga bosing va quyidagi dialog oynasini to'ldiring:

    4-qism. Maven asoslari - 3
  7. Keyinchalik, standart sifatida kerakli joyda loyiha yarating.

    Loyiha yaratilgandan so'ng, uning tuzilishiga e'tibor bering:

    4-qism. Maven asoslari - 4
Bu Maven loyihasi uchun standart tuzilma :
  • src/main/java papkasida java sinflari mavjud;
  • src/main/resurslarda - ilovamiz foydalanadigan resurslar (HTML sahifalari, rasmlar, uslublar jadvallari va boshqalar);
  • src/test - testlar uchun.
Pom.xml deb nomlangan faylga ham e'tibor bering . Bu Mavenni boshqarish uchun asosiy fayl . Loyihaning to'liq tavsifi bu erda mavjud. Hali u erda juda ko'p ma'lumot yo'q, lekin biz uni hozir qo'shamiz.

Mavenda qaramlikni boshqarish

Siz "qaramlik menejeri" yoki "qaramlik menejeri" iboralariga duch kelgan bo'lishingiz mumkin. Maven hammasini qila oladi. Maven tufayli Internetda kerakli kutubxonani qidirish, uni yuklab olish va keyin uni loyihaga ulash uchun ko'p vaqt sarflashingiz shart emas: shunchaki kerakli kutubxonani Maven bog'liqliklari ro'yxatiga qo'shing. Bog'liqliklar bog'liqliklar XML tugunida yozilgan.Fayllar bilan soddalashtirilgan ishlash uchun sizga loyihangizda Apache Commons IO kutubxonasi kerak deylik. Kutubxona qo'shish uchun pom.xml da besh qatorni yozing:
<dependency>
   <groupId>commons-io</groupId>
   <artifactId>commons-io</artifactId>
   <version>2.6</version>
</dependency>
Sizning pom.xml endi quyidagicha ko'rinishi kerak:
<?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>
Shundan so'ng, IntelliJ IDEA-ga bog'liqlikni import qilishga ruxsat bering (pastki o'ng burchakda dialog oynasi paydo bo'lishi kerak). Endi kutubxona foydalanishga tayyor:
import org.apache.commons.io.FileUtils;

import java.io.File;

public class TestMaven {
   public static void main(String[] args) {
       File tempDirectory = FileUtils.getTempDirectory();
   }
}
Barcha keyingi bog'liqliklar <dependencies> tegi ichiga yozilishi kerak. Sizni qiziqtirgan bo'lishingiz mumkin: <dependency> tegiga kutubxona haqida qanday ma'lumotlarni kiritish kerakligini qayerdan bilasiz? Bu erda hamma narsa oddiy. Bunday hollarda, har doim uchta parametr ko'rsatiladi: groupId, artifactId va versiya. Ushbu parametrlarni ikki yo'l bilan bilib olishingiz mumkin:
  1. Kutubxona veb-saytida. Agar bizga Apache Commons IO kerak bo'lsa, rasmiy veb-saytga o'ting va Dependency Information yorlig'ini tanlang. Barcha kerakli ma'lumotlar shu yerda - siz shunchaki uni nusxalashingiz va bizning bog'liqliklar bo'limiga qo'shishingiz mumkin.

  2. Maven omborida . Qidiruvda "apache commons io" ni kiriting va kutubxonaning barcha mavjud versiyalarini ko'rasiz. Sizga kerak bo'lganini tanlagandan so'ng, shunchaki nusxa oling:

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

    va pom.xml ga qo'shing.

Maven omborlarining turlari

Maven omborini yana bir bor eslatib o'tish kerak, chunki bizda aslida ikkitasi bor - tashqi (global) va mahalliy, sizning kompyuteringizda. Loyihalaringizga qo'shgan barcha kutubxonalar mahalliy omborda saqlanadi. Maven loyihaga kerakli bog'liqlikni qo'shganda, u birinchi navbatda mahalliy omborda bunday kutubxona mavjudligini tekshiradi va u erda topilmasa, u tashqi kutubxonaga o'tadi. Ko'rib turganingizdek, bog'liqliklarni qo'shish uchun Maven dan foydalanishingiz mumkin, ammo bu hammasi qila olmaydi.

Maven yordamida Java loyihasini yaratish

Yangi boshlanuvchilar uchun bu xususiyat ma'nosiz ko'rinishi mumkin. Agar IDE mavjud bo'lsa, bu nima uchun kerak? Lekin yoq! Birinchidan, dasturni yaratishingiz kerak bo'lgan server nafaqat ishlab chiqish muhitiga, balki grafik interfeysga ham ega bo'lishi mumkin. Ikkinchidan, yirik loyihalarda Maven loyihani yig'ish vazifalarini yaxshiroq bajaradi. Shuning uchun keling, kutish bilan o'zimizni qiynamaylik, balki Maven yordamida dastur yaratish jarayonini ko'rib chiqaylik.

Fazalar

Ilovani yaratish jarayoni Maven loyihasining hayot aylanishi deb ataladi va u bosqichlardan iborat. Yuqori o'ng burchakdagi Maven>Misol>Lifecycle-ni bosish orqali IDEA-da ularni ko'rishingiz mumkin: 4-qism. Maven asoslari - 5Ko'rib turganingizdek, 9 bosqich mavjud:
  1. toza - barcha kompilyatsiya qilingan fayllarni maqsadli katalogdan olib tashlaydi (tugagan artefaktlar saqlanadigan joy);
  2. validate - loyihani qurish uchun barcha ma'lumotlar mavjudligini tekshirish;
  3. kompilyatsiya - dastlabki kodli fayllar kompilyatsiya qilinadi;
  4. test — testlar ishga tushirildi;
  5. paket - kompilyatsiya qilingan fayllar paketlanadi (jarga, urush va hokazo arxivga);
  6. verify — qadoqlangan faylning tayyorligini tasdiqlash uchun tekshirishlar amalga oshiriladi;
  7. o'rnatish - paket mahalliy omborga joylashtiriladi. Endi u boshqa loyihalar tomonidan tashqi kutubxona sifatida ishlatilishi mumkin;
  8. sayt - loyiha hujjatlari yaratiladi;
  9. joylashtirish - to'plangan arxiv masofaviy omborga ko'chiriladi.
Barcha bosqichlar ketma-ket bajariladi: 1-3 bosqichlar tugamaguncha, masalan, to'rtinchi bosqichni boshlay olmaysiz. Fazani boshlashning ikki yo'li mavjud:
  • buyruq qatori orqali:

    mvn to'plami

    4-qism. Maven asoslari - 6
  • Intellij IDEA yordamida:

    4-qism. Maven asoslari - 7

    Paketni ishga tushirishdan oldin tekshirish, kompilyatsiya qilish va sinov bosqichlari amalga oshiriladi. Istisno - bu toza bosqich. Har bir yangi loyihani qurishdan oldin uni chaqirish tavsiya etiladi. Fazalarni bo'shliqlar bilan ajratib ko'rsatish mumkin:

    mvn toza to'plami.

Bundan tashqari, har bir bosqichda oldingi va keyingi bosqichlar mavjud: masalan, joylashtirishdan oldin, joylashtirishdan keyin, oldindan tozalash, tozalashdan keyin, lekin ular juda kamdan-kam qo'llaniladi. Bundan tashqari, har bir bosqichning maqsadlari bor. Standart maqsadlar sukut bo'yicha kiritilgan, qo'shimchalar Maven plaginlari tomonidan qo'shilgan. Ba'zan ba'zi bosqichlarda siz qo'shimcha funktsiyalarni bajarishingiz kerak bo'ladi. Buning uchun Maven plaginlari mavjud. Rasmiy plaginlar ro'yxatini Maven veb-saytida topish mumkin . Ammo shuni bilingki, uchinchi tomon resurslarida topish mumkin bo'lgan ko'plab maxsus plaginlar mavjud. Xo'sh, albatta, ba'zi ekzotik ehtiyojlar mavjud bo'lsa, siz har doim bunday plaginni o'zingiz yozish imkoniyatiga egasiz .

Plaginlar

Loyihaga Maven plaginini qo'shish uchun uning tavsifi, bog'liqliklarga o'xshash, pom.xml faylida <build> va <plugins> teglarida joylashtirilishi kerak. Masalan, barcha tashqi kutubxonalarimiz eng so'nggi versiyalardan foydalanayotganini tekshirish uchun bizga plagin kerak. Internetda biroz qidirgandan so'ng, siz ushbu plaginni foydalanish bo'yicha ko'rsatmalar bilan topishingiz mumkin. Keling, uning groupId, artifactId va versiyasini o'rnatamiz. Keling, u qanday maqsadlarga erishishi va qaysi bosqichda bajarilishi kerakligini yozaylik. Bizning holatda, joriy pom.xml da qaramlikni tekshirish tasdiqlash bosqichiga o'rnatiladi. Endi bizning "xotiramiz" quyidagicha ko'rinadi:
<?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>

   <build>
       <plugins>
           <plugin>
               <groupId>com.soebes.maven.plugins</groupId>
               <artifactId>uptodate-maven-plugin</artifactId>
               <version>0.2.0</version>
               <executions>
                   <execution>
                       <goals>
                           <goal>dependency</goal>
                       </goals>
                       <phase>validate</phase>
                   </execution>
               </executions>
           </plugin>
       </plugins>
   </build>

   <dependencies>
       <dependency>
           <groupId>commons-io</groupId>
           <artifactId>commons-io</artifactId>
           <version>2.6</version>
       </dependency>
   </dependencies>
</project>
Biz hali ham loyihamiz ustida ishlashni davom ettirishimiz mumkin. Ammo keling, Apache Commons IO versiyasini 2.0 ga o'zgartirib, loyihani qurishni boshlaylik. Biz quyidagilarni olamiz: [ERROR] Failed to execute goal com.soebes.maven.plugins:uptodate-maven-plugin:0.2.0:dependency (default) on project example: There is a more up-to-date version ( 2.6 ) of the dependency commons-io:commons-io:2.0 available. -> [Help 1] bu erda plagin tufayli yuzaga kelgan qurilish xatosi bor. Xato xabari 2.6 mavjud bo'lganda 2.0 versiyasidan foydalanayotganimizni bildiradi. Umuman olganda, Maven juda foydali vositadir. Avvaliga foydalanish qiyin bo'lib tuyulishi mumkin, lekin mashq qiling, Maven ostida loyihalaringizni yarating va bir muncha vaqt o'tgach, natijadan juda xursand bo'lasiz. Ushbu maqola Maven haqida juda ko'p tafsilotlarni ataylab o'tkazib yubordi - biz asosiy narsalarga e'tibor qaratdik. Ammo mukammallikka cheklov yo'q: siz Maven haqida ko'proq ma'lumotni mahsulotning rasmiy veb-saytida o'qishingiz mumkin . 5-qism. Servletlar. Oddiy veb-ilovani yozish 6-qism. Servlet konteynerlari 7-qism. MVC (Model-View-Controller) naqshini tanishtirish 8-qism. Kichkina bahor-boot ilovasini yozish
Izohlar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION