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?
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?
Câu trả lời:
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
modelVersion
chứ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.
Câu trả lời Đúng phải là sự kết hợp của các câu trả lời của @Toumi và @Boj. Ngoài ra, hãy xem tại https://cwiki.apache.org/confluence/display/MAVEN/POM+Model+Version+5.0.0 để biết thêm thông tin cơ bản về điều này.
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ẹ.