Różnicę między tymi dwoma najlepiej najlepiej przedstawić w niezbędnej i wystarczającej definicji elementu dependenceManagement dostępnego w dokumentach witryny Maven:
dependencyManagement
„Domyślne informacje o zależnościach dla projektów, które dziedziczą z tego. Zależności w tej sekcji nie są natychmiast usuwane. Zamiast tego, gdy POM pochodzący z tej deklaruje zależność opisaną przez pasujące groupId i artefactId, wersję i inne wartości z tej sekcji są używane dla tej zależności, jeśli nie zostały jeszcze określone. ” [ https://maven.apache.org/ref/3.6.1/maven-model/maven.html ]
Należy go przeczytać wraz z dodatkowymi informacjami dostępnymi na innej stronie:
„... minimalny zestaw informacji do dopasowania odwołania do zależności do sekcji dependenceManagement to tak naprawdę {groupId, artefactId, typ, klasyfikator}. W wielu przypadkach te zależności będą odnosić się do artefaktów jar bez klasyfikatora. To pozwala nam skrócić zestaw tożsamości na {groupId, artefactId}, ponieważ domyślnym polem typu jest jar, a domyślnym klasyfikatorem jest null. ” [ https://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html ]
Tak więc wszystkie podelementy (zakres, wykluczenia itp.) Elementu zależności - inne niż groupId, artefactId, typ, klasyfikator, a nie tylko wersja - są dostępne do zablokowania / domyślnego w punkcie (a więc dziedziczone z od tego momentu) określasz zależność w ramach elementu dependenceElement. Jeśli określisz zależność z podelementami typu i klasyfikatora (zobacz pierwszą cytowaną stronę internetową, aby sprawdzić wszystkie podelementy) jako nie jar i odpowiednio null, potrzebujesz {groupId, artefactId, klasyfikator, typ} odwoływać się (rozwiązywać) tę zależność w dowolnym momencie spadku pochodzącego z elementu dependenceManagement. W przeciwnym razie wystarczy {groupId, artefactId}, jeśli nie zamierzasz zastępować wartości domyślnych dla klasyfikatora i typu (odpowiednio jar i null). Domyślne jest więc dobrym słowem kluczowym w tej definicji; dowolny podelement (-y) (inny niż groupId,
Tak więc każdy element zależności spoza dependenceManagement, czy to jako odwołanie do jakiegoś elementu dependenceManagement, czy jako samodzielny, jest natychmiast rozstrzygany (tj. Instalowany w lokalnym repozytorium i dostępny dla ścieżek klas).