2017-03-20 3 views
0

Diese Frage hat vielleicht schon eine Antwort, aber ich konnte keine zufriedenstellende finden. Ich habe gerade jersey Gläser auf den neuesten Stand gebracht. Ich bekomme jersey Abhängigkeiten von der Parent project, die auch ein anderes Projekt als eine Abhängigkeit enthält, die die niedrigere Version von jersey verwendet. Ich aktualisiere die jersey Gläser in diesem Projekt nicht. Nach dem Aktualisieren der Gläser sehe ich zwei Versionen von jersey client eine der ihnen ist die neueste und die andere ist von dem Projekt, das die niedrigere Version verwendet. Scope ist kompilieren. Meine App läuft gut, aber auf dem lib-Ordner sehe ich zwei Versionen von Trikot-Client 1.17 und 2.25.1. Wird dies ein Problem verursachen oder wird Maven immer den 2.25.1 benutzen?Will Maven die neueste Abhängigkeit von zwei auswählen?

Dank

+2

Mögliche Duplikate von [Mehrere Versionen der gleichen Abhängigkeit in Maven] (http://stackoverflow.com/questions/24962607/multiple-versions-of-the-same-dependency-in-maven) – john16384

Antwort

2

Maven wird immer die Abhängigkeit nehmen, die die am nächsten an der Wurzel Ihrer Abhängigkeitsbaum ist. Wenn zwei verschiedene Versionen auf derselben Ebene sind, wird die erste, die deklariert ist, übernommen. Lets nehmen wir folgendes Beispiel:

pom.xml 
|--A:1.0 
|--B:1.0 
| |--A:2.0 
| |--C:1.0 
| |--D:2.0 
|--C:2.0 
    |--D:1.0 

Hier werden die Bibliotheken A:1.0, B:1.0, C:2.0 und D:2.0 aufgelöst. Während die Versionen A, B und C verwendet werden, da sie dem Stamm am nächsten sind, wird die Version verwendet, weil sie zuerst deklariert wurde.

+0

Macht Sinn. Danke SilverNak. – Mike

+0

Gern geschehen, @Mike – SilverNak