La differenza tra i due è meglio portata in quella che sembra una definizione necessaria e sufficiente dell'elemento dependencyManagement disponibile nei documenti del sito Web Maven:
dependencyManagement
"Informazioni di dipendenza predefinite per i progetti che ereditano da questo. Le dipendenze in questa sezione non vengono immediatamente risolte. Invece, quando un POM derivato da questo dichiara una dipendenza descritta da un ID gruppo e un artefatto corrispondenti, la versione e altri valori di questa sezione vengono utilizzati per tale dipendenza se non sono già stati specificati. " [ https://maven.apache.org/ref/3.6.1/maven-model/maven.html ]
Dovrebbe essere letto insieme ad alcune ulteriori informazioni disponibili su una pagina diversa:
“.. l'insieme minimo di informazioni per abbinare un riferimento di dipendenza a una sezione di gestione delle dipendenze è in realtà {groupId, artefactId, type, classifier}. In molti casi, queste dipendenze faranno riferimento a artefatti jar senza classificatore. Questo ci consente di abbreviare l'identità impostata su {groupId, artefactId}, poiché il valore predefinito per il campo type è jar e il classificatore predefinito è null. " [ https://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html ]
Pertanto, tutti gli elementi secondari (ambito, esclusioni ecc.) Di un elemento di dipendenza - diversi da groupId, artefactId, tipo, classificatore, non solo versione - sono disponibili per il blocco / default nel punto (e quindi ereditati da in seguito) si specifica la dipendenza all'interno di un dependencyElement. Se avessi specificato una dipendenza con gli elementi secondari di tipo e classificatore (vedi la pagina Web citata per primo per controllare tutti gli elementi secondari) rispettivamente come non jar e non null, avresti bisogno di {groupId, artefactId, classifier, type} per fare riferimento (risolvere) tale dipendenza in qualsiasi punto di un'eredità originata dall'elemento dependencyManagement. Altrimenti, {groupId, artifactId} sarebbe sufficiente se non si intende sostituire i valori predefiniti per classificatore e tipo (rispettivamente jar e null). Quindi default è una buona parola chiave in quella definizione; tutti gli elementi secondari (diversi da groupId,
Quindi, qualsiasi elemento di dipendenza al di fuori di dependencyManagement, sia come riferimento ad un elemento dependencyManagement o come standalone, viene immediatamente risolto (cioè installato nel repository locale e disponibile per i percorsi di classe).