Der Unterschied zwischen den beiden wird am besten in der scheinbar notwendigen und ausreichenden Definition des dependencyManagement-Elements deutlich, die in den Maven-Webseiten-Dokumenten zu finden ist:
dependencyManagement
"Standard-Abhängigkeitsinformationen für Projekte, die von diesem Projekt erben. Die Abhängigkeiten in diesem Abschnitt werden nicht sofort aufgelöst. Wenn stattdessen ein von diesem abgeleitetes POM eine Abhängigkeit deklariert, die durch eine passende groupId und artifactId beschrieben wird, werden die Version und andere Werte aus diesem Abschnitt für diese Abhängigkeit verwendet, wenn sie nicht bereits angegeben wurden." [ https://maven.apache.org/ref/3.6.1/maven-model/maven.html ]
Sie sollte zusammen mit einigen weiteren Informationen auf einer anderen Seite gelesen werden:
" der minimale Satz an Informationen für den Abgleich einer Abhängigkeitsreferenz mit einem dependencyManagement-Abschnitt ist eigentlich {groupId, artifactId, type, classifier}. In vielen Fällen beziehen sich diese Abhängigkeiten auf jar-Artefakte ohne Klassifikator. Dies erlaubt es uns, den Identitätssatz auf {groupId, artifactId} abzukürzen, da der Standard für das type-Feld jar ist und der Standard-Klassifikator null ist." [ https://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html ]
Somit sind alle Subelemente (Geltungsbereich, Ausschlüsse usw.) eines Abhängigkeitselements - außer groupId, artifactId, type, classifier, nicht nur version - für Lockdown/Default an dem Punkt verfügbar (und werden somit von dort an vererbt), an dem Sie die Abhängigkeit innerhalb eines dependencyElements angeben. Wenn Sie eine Abhängigkeit mit den Unterelementen type und classifier (siehe die erstgenannte Webseite, um alle Unterelemente zu überprüfen) als not jar bzw. not null angegeben haben, benötigen Sie {groupId, artifactId, classifier, type}, um diese Abhängigkeit an einem beliebigen Punkt in einer Vererbung zu referenzieren (aufzulösen), die vom dependencyManagement-Element ausgeht. Andernfalls würde {groupId, artifactId} ausreichen, wenn Sie nicht beabsichtigen, die Standardwerte für classifier und type (jar bzw. null) außer Kraft zu setzen. Standard ist also ein gutes Schlüsselwort in dieser Definition; alle Unterelemente (außer groupId, artifactId, classifier und type natürlich), denen an dem Punkt, an dem Sie auf eine Abhängigkeit verweisen, explizit Werte zugewiesen werden, setzen die Standardwerte im dependencyManagement-Element außer Kraft.
So wird jedes Abhängigkeitselement außerhalb von dependencyManagement, ob als Verweis auf ein dependencyManagement-Element oder als eigenständiges Element, sofort aufgelöst (d.h. im lokalen Repository installiert und für Klassenpfade verfügbar).