มุมมองทั่วไปของไฟล์ pom

โครงสร้างของโปรเจ็กต์อธิบายไว้ในไฟล์ pom.xml ซึ่งต้องอยู่ในโฟลเดอร์รูทของโปรเจ็กต์ เนื้อหาของไฟล์โครงการมีลักษณะดังนี้:

<project>
        <!— คำอธิบายของโครงการปัจจุบัน -->
        <groupId>...</groupId>
        <artifactId>...</artifactId>
        <packaging>...</packaging>
        <version>... </ version>


        <properties>
            <!-- ส่วน Properties -->
        </properties>

        <repositories>
            <!-- ส่วน Repositories -->
        </repositories>


        <dependencies>
            <!-- ส่วนการพึ่งพา -->
        </ การพึ่งพา>

        <build>
            <!-- ส่วนการสร้าง -->
        </build>
</project>

อาจไม่มีทุกส่วนในคำอธิบาย pom.xml ดังนั้นจึงมักไม่ใช้ ส่วน คุณสมบัติและที่เก็บ จำเป็นต้องมีพารามิเตอร์คำอธิบายของ โครงการปัจจุบัน เราจะพูดถึงส่วนสุดท้ายในตอนนี้

ส่วนการสร้าง

ส่วนการสร้างเป็นทางเลือก - Maven สามารถสร้างโครงการได้โดยไม่ต้องมีส่วนนี้ แต่ถ้าคุณต้องการตั้งค่าแอสเซมบลีของโครงการที่ซับซ้อนมากหรือน้อย การทำความเข้าใจว่าทุกอย่างทำงานอย่างไรจะมีประโยชน์

ลองดูตัวอย่างง่ายๆ:

  <build>
        <finalName>ชื่อโครงการ</finalName>
        <sourceDirectory>${baseir}/src/java</sourceDirectory>
        <outputDirectory>${baseir}/targetDir</outputDirectory>
        <resources>
                <resource>
                <directory>${ basedir}/src/java/resources</directory>
                <includes>
                    <include>**/*.properties

                </include>                 </includes>                 </resource>
        </resources>
        <plugins>
. .
        </ปลั๊กอิน>
    </build>

ส่วนนี้ประกอบด้วยข้อมูลพื้นฐานเกี่ยวกับการสร้าง: ตำแหน่งของไฟล์ Java, ไฟล์ทรัพยากร, ปลั๊กอินที่ใช้, ตำแหน่งที่จะวางโครงการที่สร้างขึ้น

มีสี่แท็กหลัก:

  • <ชื่อสุดท้าย>
  • <ไดเรกทอรีแหล่งที่มา>
  • <ไดเร็กทอรีเอาต์พุต>
  • <ทรัพยากร>

เรามาวิเคราะห์วัตถุประสงค์กันโดยสังเขป:

แท็ก<finalName>ระบุชื่อของไฟล์บิลด์ผลลัพธ์ (jar, war, ear..) ที่สร้างขึ้นในเฟสแพ็คเกจ หาก ไม่ได้ระบุพารามิเตอร์ จะใช้ค่าดีฟอลต์artifactId-version

แท็ก<sourceDirectory>ช่วยให้คุณสามารถกำหนดตำแหน่งของไฟล์ต้นฉบับใหม่ได้ ตามค่าเริ่มต้น ไฟล์จะอยู่ใน ไดเร็กทอรี ${baseir}/src/main/javaแต่คุณสามารถระบุตำแหน่งอื่นได้

แท็ก<outputDirectory>ระบุไดเร็กทอรีที่คอมไพลเลอร์จะบันทึกผลการคอมไพล์ - ไฟล์*.class ค่าเริ่มต้นคือtarget/classes

แท็ก<resources>และ แท็ก <resource> ที่ซ้อนกัน กำหนดตำแหน่งของไฟล์ทรัพยากร ไฟล์ทรัพยากรจะถูกคัดลอกไปยัง ไดเร็กทอรี outputDirectory เมื่อสร้างไฟล์ . ค่าดีฟอลต์ของไดเร็กทอรีรีซอร์สคือsrc /main/resources

ส่วนการประกอบสามารถกำหนดค่าได้อย่างยืดหยุ่นเป็นพิเศษ เราจะดูรายละเอียดเพิ่มเติมในภายหลัง