Chế độ xem chung của tệp pom

Cấu trúc của dự án được mô tả trong tệp pom.xml, tệp này phải được đặt trong thư mục gốc của dự án. Nội dung của tệp dự án trông như thế này:

<project>
        <!—Mô tả dự án hiện tại -->
        <groupId>...</groupId>
        <artifactId>...</artifactId>
        <packaging>...</packaging>
        <version>... </ phiên bản>


        <thuộc tính>
            <!-- Phần thuộc tính -->
        </properties>

        <kho lưu trữ>
            <!-- Phần kho lưu trữ --> </
        kho


        lưu trữ> <phụ thuộc>
            <!-- Phần phụ thuộc -->
        </ phụ thuộc>

        <build>
            <!-- Phần xây dựng -->
        </build>
</project>

Không phải tất cả các phần đều có thể có trong mô tả pom.xml. Vì vậy phần thuộc tínhkho lưu trữ thường không được sử dụng. Các tham số mô tả của dự án hiện tại là bắt buộc . Bây giờ chúng ta sẽ nói về phần cuối cùng.

phần xây dựng

Phần xây dựng là tùy chọn - Maven có thể xây dựng một dự án mà không cần nó. Nhưng nếu bạn muốn thiết lập việc lắp ráp một dự án ít nhiều phức tạp, thì việc hiểu cách mọi thứ hoạt động ở đó sẽ rất hữu ích.

Hãy xem xét một ví dụ đơn giản:

  <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>
                . . .
        </plugin>
    </build>

Phần này chứa thông tin cơ bản về xây dựng: vị trí của các tệp Java, tệp tài nguyên, plugin nào được sử dụng, vị trí đặt dự án đã xây dựng.

Có bốn thẻ chính:

  • <FinalName>
  • <sourceDirectory>
  • <thư mục đầu ra>
  • <tài nguyên>

Hãy phân tích ngắn gọn mục đích của họ:

Thẻ <FinalName> chỉ định tên của tệp bản dựng kết quả (jar, war, ear..) được tạo trong giai đoạn đóng gói . Nếu tham số không được chỉ định, thì giá trị mặc định artifactId-version sẽ được sử dụng .

Thẻ <sourceDirectory> cho phép bạn xác định lại vị trí của các tệp nguồn. Theo mặc định, các tệp nằm trong thư mục ${basedir}/src/main/java , nhưng bạn có thể chỉ định bất kỳ vị trí nào khác.

Thẻ <outputDirectory> chỉ định thư mục mà trình biên dịch sẽ lưu kết quả biên dịch - các tệp *.class . Giá trị mặc định là target/classes .

Thẻ <resources> và các thẻ <resource> lồng nhau của nó xác định vị trí của các tệp tài nguyên. Các tệp tài nguyên được sao chép đơn giản vào thư mục outputDirectory khi xây dựng các tệp . Giá trị mặc định của thư mục tài nguyên là src/main/resources .

Phần lắp ráp có thể được cấu hình đặc biệt linh hoạt. Chúng tôi sẽ xem xét nó chi tiết hơn một chút sau.