Maven-loyihani yig'ish

All lectures for UZ purposes
Daraja, Dars
Mavjud

pom-faylning umumiy ko'rinishi

Loyiha tarkibi pom.xml faylida tavsiflanadi, va u korne papkada joylashishi kerak. Loyihani tarkibi quyidagi ko'rinishga ega:

<project>
         <!—Joriy loyiha tavsifi -->
         <groupId>...</groupId>
        <artifactId>...</artifactId>
        <packaging>...</packaging>
        <version>...</version>


         <properties>
             <!-- Xususiyatlar bo'limi -->
         </properties>

         <repositories>
             <!-- Repozitoriyalar bo'limi -->
         </repositories>


         <dependencies>
             <!-- Bog'liqliklar bo'limi -->
         </dependencies>

         <build>
             <!-- Yig'ish bo'limi -->
         </build>
</project>

Har doim ham barcha bo'limlar pom.xml tavsifida mavjud bo'lmasligi mumkin. Masalan, properties va repositories bo'limlari ko'pincha ishlatilmaydi. Joriy loyiha tavsifi parametrlariga majburiy. Biz oxirgi bo'lim haqida hozir gaplashamiz.

Build bo'limi

Build bo'limi majburiy emas – Maven loyiha yig'ishni u bilan yoki usiz amalga oshira oladi. Ammo, agar loyihani bir oz murakkabroq darajada sozlamoqchi bo'lsang, qanday ishlashini tushunish foydali bo'ladi.

Keling, oddiy misolni ko'rib chiqaylik:

  <build>
         <finalName>projectName</finalName>
         <sourceDirectory>${basedir}/src/java</sourceDirectory>
         <outputDirectory>${basedir}/targetDir</outputDirectory>
        <resources>
                 <resource>
                <directory>${basedir}/src/java/resources</directory>
                <includes>
                    <include>**/*.properties</include>
                </includes>
                </resource>

        </resources>
        <plugins>
                . . .
        </plugins>
    </build>

Bu bo'lim yig'ish uchun asosiy ma'lumotlarni o'z ichiga oladi: Java-fayllar qaerda joylashgan, resurs fayllari, qanday plaginlar ishlatiladi, yig'ilgan loyihani qaerga qo'yish kerak.

Bu yerda to'rt asosiy teg mavjud:

  • <finalName>
  • <sourceDirectory>
  • <outputDirectory>
  • <resources>

Ularning vazifasini qisqa ko'rib chiqamiz:

<finalName> tegi, yig'ish natijasida hosil bo'ladigan fayl nomini (jar, war, ear..) ko'rsatadi, va bu package fazasida yaratiladi. Agar parametr belgilanmagan bo'lsa, odatiy qiymat sifatida artifactId-version ishlatiladi.

<sourceDirectory> tegi, dastur kodi joylashgan fayllarni joylashuvini o'zgartirishga imkon beradi. Odatiy holda, fayllar ${basedir}/src/main/java papkada joylashgan, ammo boshqa joyni ham ko'rsatish mumkin.

<outputDirectory> tegi, kompilyator natijalarini saqlash joyini ko'rsatadi – *.class fayllar. Odatiy qiymat target/classes.

<resources> tegi va u ichidagi <resource> teglar, resurs fayllari joylashgan joyni belgilaydi. Resurs fayllari yig'ish paytida outputDirectory papkaga avtomatik ravishda ko'chiriladi. Resurslar papkasining odatiy qiymati src/main/resources.

Yig'ish bo'limini juda moslashuvchan qilib sozlash mumkin. Uni batafsilroq keyinchalik ko'rib chiqamiz.

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