ความแตกต่างระหว่างทั้งสองได้รับสิ่งที่ดีที่สุดในสิ่งที่ดูเหมือนว่าคำจำกัดความที่จำเป็นและเพียงพอขององค์ประกอบการพึ่งพาการจัดการที่มีอยู่ในเอกสารเว็บไซต์ Maven:
dependencyManagement
"ข้อมูลการพึ่งพาเริ่มต้นสำหรับโครงการที่สืบทอดมาจากที่นี้การอ้างอิงในส่วนนี้จะไม่ได้รับการแก้ไขในทันที แต่เมื่อ POM ที่ได้มาจากที่นี้ประกาศการพึ่งพาที่อธิบายไว้โดย groupId และ artifactId ที่ตรงกันรุ่นและค่าอื่น ๆ จากส่วนนี้ ใช้สำหรับการอ้างอิงนั้นหากไม่ได้ระบุไว้ " [ https://maven.apache.org/ref/3.6.1/maven-model/maven.html ]
ควรอ่านพร้อมกับข้อมูลเพิ่มเติมที่มีอยู่ในหน้าอื่น:
“ .. ชุดข้อมูลขั้นต่ำสำหรับการจับคู่การอ้างอิงการอ้างอิงกับส่วนการพึ่งพาการจัดการคือจริงๆแล้ว {groupId, artifactId, type, classifier} ในหลายกรณีการอ้างอิงเหล่านี้จะอ้างถึงสิ่งประดิษฐ์ jar ที่ไม่มีตัวจําแนก สิ่งนี้ช่วยให้เราสามารถระบุตัวตนของชุดข้อมูลเป็น {groupId ,ifactId} ได้เนื่องจากค่าเริ่มต้นสำหรับฟิลด์ประเภทคือ jar และตัวแยกประเภทเริ่มต้นเป็นโมฆะ” [ https://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html ]
ดังนั้นองค์ประกอบย่อยทั้งหมด (ขอบเขตการยกเว้น ฯลฯ ) ขององค์ประกอบการพึ่งพา - นอกเหนือจาก groupId, artifactId, ประเภท, ลักษณนามไม่ใช่แค่รุ่น - มีให้สำหรับการล็อค / ค่าเริ่มต้นที่จุด (และสืบทอดมาจาก เป็นต้นไป) คุณระบุการพึ่งพาภายใน dependencyElement หากคุณระบุการพึ่งพากับองค์ประกอบย่อยประเภทและตัวแยกประเภท (ดูหน้าเว็บที่อ้างถึงครั้งแรกเพื่อตรวจสอบองค์ประกอบย่อยทั้งหมด) ว่าไม่ใช่ jar และไม่เป็นโมฆะตามลำดับคุณจะต้อง {groupId ,ifactId, ตัวแยกประเภท,} เพื่ออ้างอิง (แก้ไข) การพึ่งพานั้น ณ จุดใด ๆ ในการสืบทอดที่มาจากองค์ประกอบการพึ่งพาการจัดการ อื่น {groupId ,ifactId} จะพอเพียงถ้าคุณไม่ต้องการแทนที่ค่าเริ่มต้นสำหรับลักษณนามและประเภท (jar และ null ตามลำดับ) ดังนั้นค่าเริ่มต้นคือคำหลักที่ดีในคำนิยามนั้น องค์ประกอบย่อยใด ๆ (นอกเหนือจาก groupId,
ดังนั้นองค์ประกอบการพึ่งพาใด ๆ ที่อยู่นอกการพึ่งพาการจัดการไม่ว่าจะเป็นการอ้างอิงถึงองค์ประกอบการพึ่งพาการจัดการบางส่วนหรือเป็นแบบสแตนด์อโลนได้รับการแก้ไขทันที (เช่นติดตั้งไปยังพื้นที่เก็บข้อมูลในท้องถิ่นและพร้อมสำหรับ classpaths)