Verfolgen verwalteter Abhängigkeitsversionen in Maven

8

Angenommen, ich habe ein komplexes Projekt mit vielen Abhängigkeiten. Die Versionen der Abhängigkeiten werden von vielen Import-Scope-Poms verwaltet. Mein Projekt hängt vom Artefakt group:artifact ab, das eine Abhängigkeit vom Artefakt group:transitive-dependency hat. Wenn ich dependency:tree ausführe, sehe ich etwas wie folgt:

%Vor%

Das Problem ist group:artifact:1.3 erfordert group:transitive-dependency Version 1.3 oder höher. Sicher, einer der Importpoms erzwingt die falsche Version. Aber gibt es eine Möglichkeit zu wissen, welcher man ist, außer dass man alle durchsucht?

    
Stijn Van Bael 14.01.2013, 13:10
quelle

2 Antworten

5

Sie sollten das maven-enforcer-plugin ausprobieren und es für DependencyConvergence konfigurieren, z. B.

%Vor%

Das zeigt Ihnen, welche Top-Level-Abhängigkeiten unterschiedliche Versionen anderer Abhängigkeiten in ihren Abhängigkeitsstrukturen haben. Sie unterdrücken dann die Abhängigkeitsvarianten, für die Sie keine Ausschlüsse verwenden möchten.

    
Andy Glick 18.05.2013, 05:25
quelle
2

Dies tritt auf, wenn zwei oder mehr Eltern-Poms mit demselben Artefakt in Konflikt stehen.

Für zB

[INFO] | \- com.rbs.gbm.risk:framework-core:jar:1.6.6:compile %Code% [INFO] | +- com.rbos.gbm.risk:log4jextensions:jar:2.3:compile (version managed from 2.2)

In meinem Fall hat Framework-Core log4jextenstions 2.2 erwähnt. und mein Super Pom sagt log4jextentsions 2.3. Irgendwie hat der Framework-Core überzeugt, log4jextensions 2.2 zu verwenden.

Später, wenn ich Framework-Core-Pom zu 2.3 aktualisieren,

[INFO] | +- oro:oro:jar:2.0.8:compile %Code% [INFO] | \- com.rbs.gbm.risk:framework-core:jar:1.6.6:compile

    
Sethu 04.02.2014 09:39
quelle

Tags und Links