Tại sao modelVersion của pom.xml là cần thiết và luôn được đặt thành 4.0.0?


94

Tôi nhận thấy rằng Maven's <modelVersion></modelVersion>của pom.xml luôn được đặt thành 4.0.0.

Bạn có thể vui lòng giúp tôi hiểu tầm quan trọng của thẻ này là gì và tại sao nó nên được đặt thành 4.0.0?


Chào mừng bạn đến với stackoverflow. Bạn nên đọc phần này: stackoverflow.com/questions/how-to-ask - Ngoài ra, bạn có thể cụ thể hơn một chút không?
Zeveso

8
xin lỗi, nhưng Wlll hiểu nó một cách tuyệt vời. cảm ơn sự giúp đỡ của bạn
mahesh

Câu trả lời:


86

Nó luôn được đặt thành 4.0.0 trong Maven 2 và 3, bởi vì, hiện tại, không có mô hình nào khác.

Lưu ý rằng modelVersionchứa 4.0.0. Đó hiện là phiên bản POM được hỗ trợ duy nhất và luôn được yêu cầu. [ nguồn ]

Nhưng nó không nhất thiết phải luôn được đặt thành 4.0.0 nếu có một phiên bản khác của mô hình. POM phải tuân thủ một mô hình. Giả sử Maven 4 xuất hiện với mô hình 4.1. Nếu bạn viết pom của mình tuân thủ 4.1, nó sẽ không tương thích với Maven 3 và model 4.0.0.

Nó được định nghĩa là bắt buộc, có thể để thực thi một mô hình XML cụ thể trong trường hợp các mô hình mới được xác định.


LOL - Liên minh huyền thoại ứng dụng của tôi ở phiên bản 4 và tôi đã gặp lỗi khi cập nhật phiên bản lên 5!
Chloe

8

phiên bản mô hình là phiên bản của bộ mô tả dự án mà POM của bạn tuân theo. Nó cần được bao gồm và được thiết lập. Giá trị 4.0.0 chỉ ra rằng nó tương thích với Maven 3.



2

modelVersion - chứa phiên bản mô hình của POM. Maven 1.x đã sử dụng một mô hình có chứa phần tử 3.0.0 làm phần tử con ngay lập tức của gốc. Maven 2.x / 3.x đã sử dụng phần tử 4.0.0.

phiên bản - chứa phiên bản của dự án. Nếu thuộc tính này bị thiếu thì phần tử mẹ phải có mặt và phiên bản sẽ được kế thừa từ dự án mẹ.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.