Hier ist mein allgemeines Problem:
Mein Projekt P hängt von A ab, was von B abhängt, was von C abhängt, was von Version 1.0.1 von D abhängt.
Es gibt ein Problem mit Version 1.0.1 von D und ich möchte die Verwendung eines anderen Moduls erzwingen. Ich weiß nicht, wie ich dies in den POMs meines Projekts deklarieren soll, da ich keine direkte Abhängigkeit von D hinzugefügt habe. Es ist C, das die Abhängigkeit von D erklärt.
Wichtig: In diesem Fall wird nicht nur die Version geändert, sondern auch die Gruppe und das Artefakt. Es geht also nicht nur darum, die Version der Abhängigkeit zu überschreiben, sondern ein Modul auszuschließen und ein anderes einzuschließen.
Im konkreten Fall ist D StAX, dessen 1.0.1 einen Fehler aufweist . Gemäß den Anmerkungen im Fehler "wurden die Probleme gelöst, indem stax-api-1.0.1 (maven GroupId = stax) durch stax-api-1.0-2 (maven GroupId = javax.xml.stream) ersetzt wurde", also I. Ich versuche genau das.
Somit ist D = stax: stax-api: jar: 1.0.1 und C = org.apache.xmlbeans: xmlbeans: jar: 2.3.0
Ich benutze Maven 2.0.9, falls es darauf ankommt.
Ausgabe der MVN-Abhängigkeit: Baum "
mvn dependency:tree
[..snip..]
[INFO] +- org.apache.poi:poi-ooxml:jar:3.6:compile
[INFO] | +- org.apache.poi:poi-ooxml-schemas:jar:3.6:compile
[INFO] | | +- org.apache.xmlbeans:xmlbeans:jar:2.3.0:compile
[INFO] | | | \- stax:stax-api:jar:1.0.1:compile
Im POM meines Projekts habe ich die folgende Abhängigkeit von "A":
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.6</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.6</version>
</dependency>
Danke im Voraus.