Tạo Báo Cáo Phụ Thuộc Dự Án Maven

Dưới đây là hướng dẫn chi tiết để tạo báo cáo phụ thuộc dự án bằng cách sử dụng maven-project-info-reports-pluginmaven-site-plugin, bao gồm cấu hình, các bước thực thi và xác minh kết quả.

I. Chuẩn bị Môi trường

  1. Yêu cầu phiên bản Maven
  • Đảm bảo Maven ≥ 3.7.0 (khuyến nghị phiên bản ổn định mới nhất).
  • Kiểm tra phiên bản: ``` mvn -version
2. **Yêu cầu phiên bản JDK**


- JDK ≥ **1.8** (tương thích với phiên bản Maven đang sử dụng).

**II. Cấu hình `pom.xml`**
------------------

### **1. Cấu hình cơ bản (Khuyến nghị)**

Thêm cấu hình plugin sau vào `pom.xml` để tạo **báo cáo phụ thuộc** và tích hợp vào trang web dự án:

<properties>
    <!-- Quản lý phiên bản plugin thống nhất -->
    <maven-site-plugin.version>3.15.0</maven-site-plugin.version>
    <maven-project-info-reports-plugin.version>3.4.5</maven-project-info-reports-plugin.version>
</properties>

<build>
    <plugins>
        <!-- Cấu hình maven-site-plugin (tạo trang web) -->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-site-plugin</artifactId>
            <version>${maven-site-plugin.version}</version>
        </plugin>
    </plugins>
</build>

<reporting>
    <plugins>
        <!-- Cấu hình maven-project-info-reports-plugin (tạo báo cáo phụ thuộc) -->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-project-info-reports-plugin</artifactId>
            <version>${maven-project-info-reports-plugin.version}</version>
            <reportSets>
                <reportSet>
                    <reports>
                        <!-- Chỉ tạo báo cáo phụ thuộc (có thể thêm các báo cáo khác) -->
                        <report>dependencies</report>
                        <!-- Nếu cần thêm báo cáo, bỏ ghi chú các dòng sau -->
                        <!-- <report>dependency-info</report> -->
                        <!-- <report>license</report> -->
                    </reports>
                </reportSet>
            </reportSets>
        </plugin>
    </plugins>
</reporting>

### **2. Cấu hình đơn giản (chỉ báo cáo phụ thuộc)**

Nếu chỉ cần tạo báo cáo phụ thuộc mà không tích hợp vào trang web, có thể đơn giản hóa cấu hình:


**III. Quy trình Thực thi**
----------

### **1. Dọn dẹp và tạo báo cáo**

Chạy lệnh sau để dọn dẹp các tệp cũ và tạo báo cáo phụ thuộc:

mvn clean site


- `clean`: Xóa thư mục `target/` để tránh dữ liệu cũ gây nhiễu.
- `site`: Kích hoạt tạo trang web, bao gồm báo cáo phụ thuộc.

### **2. Chỉ tạo báo cáo phụ thuộc (bỏ qua trang web)**

Nếu chỉ cần báo cáo phụ thuộc (tệp HTML), sử dụng:

mvn project-info-reports:dependencies


- Báo cáo sẽ được tạo tại `target/site/dependencies.html`.

**IV. Xác minh Kết quả**
----------

### **1. Xem báo cáo phụ thuộc**

Mở tệp HTML đã tạo:

Linux/macOS

open target/site/dependencies.html

Windows

start target/site/dependencies.html


Nội dung báo cáo ví dụ:

- **Cây phụ thuộc**: Hiển thị phụ thuộc trực tiếp và phụ thuộc truyền.
- **Phạm vi phụ thuộc**: Đánh dấu các phạm vi như `compile`, `test`, `provided`.
- **Phụ thuộc tùy chọn**: Liệt kê các phụ thuộc có `<optional>true</optional>`.

### **2. Xem trang web đầy đủ (tùy chọn)**

Nếu đã cấu hình `maven-site-plugin`, trang web đầy đủ sẽ bao gồm báo cáo phụ thuộc:

open target/site/index.html


Trong thanh điều hướng trang web sẽ có liên kết **Dependencies**.

**V. Cách sử dụng Nâng cao**
----------

### **1. Tạo tất cả báo cáo thông tin dự án**

Sửa nút `<reports>` trong `pom.xml` để thêm nhiều loại báo cáo:


### **2. Tùy chỉnh thư mục đầu ra báo cáo**

Sử dụng `<outputDirectory>` của `maven-site-plugin` để cấu hình:


### **3. Tích hợp vào CI/CD**

Thêm bước vào Jenkins/GitHub Actions:

Ví dụ GitHub Actions

  • name: Tạo Trang Maven run: mvn clean site
  • name: Tải lên Báo cáo uses: actions/upload-artifact@v4 with: name: maven-reports path: target/site/

**VI. Giải quyết Vấn đề Thường gặp**
------------

### **1. Tạo báo cáo thất bại (ClassNotFound)**

- **Nguyên nhân**: Phiên bản plugin không tương thích với Maven.
- **Giải pháp**:
- Nâng cấp plugin lên phiên bản mới nhất (như `3.4.5`).
- Kiểm tra phiên bản JDK có ≥ 1.8 không.

### **2. Báo cáo phụ thuộc trống**

- **Nguyên nhân**: Dự án không có phụ thuộc hoặc cấu hình sai.
- **Giải pháp**:
- Đảm bảo đã khai báo `<dependencies>` trong `pom.xml`.
- Chạy `mvn dependency:tree` để kiểm tra phụ thuộc đã được giải quyết thành công.

### **3. Tạo trang web chậm**

- **Nguyên nhân**: Quá nhiều báo cáo hoặc vấn đề mạng (tải plugin phụ thuộc).
- **Giải pháp**:
- Chỉ tạo các báo cáo cần thiết (như chỉ `dependencies`).
- Sử dụng chế độ ngoại tuyến của Maven (`-o`): ```
mvn clean site -o

Thẻ: Maven Java build-automation dependency-management project-reporting

Đăng vào ngày 30 tháng 5 lúc 13:57