Mengapa modelVersion pom.xml diperlukan dan selalu disetel ke 4.0.0?

95

Saya perhatikan bahwa Maven's <modelVersion></modelVersion>of pom.xml selalu disetel ke 4.0.0.

Bisakah Anda membantu saya memahami apa pentingnya tag ini dan mengapa harus disetel ke 4.0.0?

mahesh
sumber
Selamat datang di stackoverflow. Anda harus membaca ini: stackoverflow.com/questions/how-to-ask - Selain itu, dapatkah Anda lebih spesifik?
Zeveso
8
maaf, tapi Wlll memahaminya dengan baik. terima kasih atas bantuan Anda
mahesh

Jawaban:

89

Itu selalu disetel ke 4.0.0 di Maven 2 dan 3, karena, saat ini, tidak ada model lain.

Perhatikan yang modelVersionberisi 4.0.0. Itu saat ini satu-satunya versi POM yang didukung, dan selalu diperlukan. [ sumber ]

Namun tidak perlu selalu disetel ke 4.0.0 jika ada versi model lain. Sebuah POM harus mematuhi model. Katakanlah Maven 4 datang dengan model 4.1. Jika Anda menulis pom Anda untuk memenuhi 4.1, itu tidak akan kompatibel dengan Maven 3 dan model 4.0.0.

Ini didefinisikan sebagai wajib, mungkin untuk memberlakukan model XML tertentu jika model baru ditentukan.

Boj
sumber
LOL aplikasi saya menggunakan versi 4 dan saya mendapat kesalahan saat memperbarui versi ke 5!
Chloe
8

versi model adalah versi deskriptor proyek yang sesuai dengan POM Anda. Ini perlu disertakan dan diatur. Nilai 4.0.0 hanya menunjukkan bahwa itu kompatibel dengan Maven 3.

Toumi
sumber
2

modelVersion - berisi versi model POM. Maven 1.x menggunakan model yang berisi elemen 3.0.0 sebagai turunan langsung dari root. Maven 2.x / 3.x telah menggunakan elemen 4.0.0.

versi - berisi versi proyek. Jika atribut ini hilang maka elemen induk harus ada dan versinya akan diwarisi dari proyek induk.

Nilotpal
sumber