Perbedaan antara keduanya paling baik dibawa dalam apa yang tampaknya definisi yang diperlukan dan cukup dari elemen Manajemen ketergantungan yang tersedia di dokumen situs web Maven:
manajemen ketergantungan
"Informasi dependensi default untuk proyek-proyek yang mewarisi dari ini. Ketergantungan pada bagian ini tidak segera diselesaikan. Alih-alih, ketika POM yang diturunkan dari ini menyatakan ketergantungan yang dijelaskan oleh groupId dan artifactId yang cocok, versi dan nilai-nilai lain dari bagian ini digunakan untuk dependensi itu jika belum ditentukan. " [ https://maven.apache.org/ref/3.6.1/maven-model/maven.html ]
Itu harus dibaca bersama dengan beberapa informasi lain yang tersedia di halaman yang berbeda:
“..Set minimal informasi untuk mencocokkan referensi dependensi dengan dependensi bagian Manajemen sebenarnya {groupId, artifactId, type, classifier}. Dalam banyak kasus, dependensi ini akan merujuk pada artefak jar tanpa classifier. Ini memungkinkan kita untuk menyingkat identitas yang diatur ke {groupId, artifactId}, karena default untuk bidang isinya adalah jar, dan classifier defaultnya adalah nol. ” [ https://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html ]
Dengan demikian, semua sub-elemen (ruang lingkup, pengecualian dll,) dari elemen dependensi - selain groupId, artifactId, tipe, classifier, bukan hanya versi - tersedia untuk penguncian / default pada titik (dan dengan demikian diwarisi dari ada seterusnya) Anda menentukan dependensi dalam dependencyElement. Jika Anda telah menentukan ketergantungan dengan sub-elemen jenis dan klasifikasi (lihat halaman web yang dikutip pertama untuk memeriksa semua sub-elemen) masing-masing bukan jar dan bukan nol, Anda akan memerlukan {groupId, artifactId, classifier, type} untuk referensi (menyelesaikan) ketergantungan itu pada titik mana pun dalam warisan yang berasal dari elemen Manajemen dependensi. Lain, {groupId, artifactId} akan cukup jika Anda tidak bermaksud untuk menimpa default untuk classifier dan tipe (masing-masing jar dan null). Jadi default adalah kata kunci yang baik dalam definisi itu; sub-elemen (selain groupId),
Jadi, setiap elemen ketergantungan di luar dependensiManagement, baik sebagai referensi ke beberapa elemen dependensiManagement atau sebagai standalone segera diselesaikan (yaitu diinstal ke repositori lokal dan tersedia untuk classpath).