2012-12-13 10 views
5

Mein Projekt hängt von jparsec ab, das von cglib abhängt, das von asm abhängt. Mein Projekt auch hängt direkt von asm, aber eine neuere Version als die cglib ist abhängig von:Exklusive verschachtelte transitive Abhängigkeit in maven

enter image description here

Es scheint, dass ich nicht asm von meiner jparsec Abhängigkeit ausschließen. Wenn ich versuche, es mit Eclipse auszuschließen, ändert sich nichts an meinem Pom. Wenn ich es manuell ausschließe, hat es keine Wirkung.

ist meine einzige Option hier cglib von jparsec auszuschließen und dann manuell eine Abhängigkeit von cglib mit asm ausgeschlossen hinzufügen? Das scheint mir etwas verworren, aber es funktioniert.

+0

Ja, das ist eine gültige Option, um dieses Problem zu lösen. Eine andere Option ist, Ihre 'asm' Abhängigkeit über die' jparsec' Abhängigkeit in pom.xml zu stellen. –

+0

@Andrew: danke. Das Setzen von 'asm' vor' jparsec' erlaubte dem Ausschluss, gegen 'asm' und nicht nur gegen' cglib' zu arbeiten. Ich bin mir nicht sicher, dass es technisch mehr benötigt wird (es wurde ohne die Ausgrenzung gebaut), aber ich habe es trotzdem hinzugefügt, um es explizit zu machen. Wenn Sie eine Antwort hinzufügen, akzeptiere ich sie. –

+0

Die Antwort wurde hinzugefügt. –

Antwort

3

Per meinem Kommentar, haben Sie zwei Möglichkeiten, dieses Problem zu lösen:

  1. Die eine, die Sie vorgeschlagen, z.B. ausschließen cglib von jparsec und cglib mit asm ausgeschlossen.
  2. Finden Sie Ihre asm Abhängigkeit über die jparsec Abhängigkeit.
4

Ich hätte erwartet, dass, wenn Sie asm vor jparsec in Ihrem POM setzen, kein Ausschluss erforderlich wäre. Das Maven "nearest definition" Verhalten würde treten, um sicherzustellen, dass nur 4.1 verwendet wird.

+0

Das hat für mich funktioniert. Vielen Dank! – BPS

Verwandte Themen