2012-12-13 5 views
5

Mój projekt zależy od jparsec, która zależy od cglib, która zależy od asm. Mój projekt również bezpośrednio zależy asm, ale nowsza wersja niż jednej cglib zależy od:Z wyłączeniem zależności zagnieżdżonej przechodniego w maven

enter image description here

Wydaje się, że nie można wykluczyć asm z mojego jparsec uzależnienia. Kiedy próbuję wykluczyć to za pomocą Eclipse, nie zmienia to mojej pom. Jeśli ręcznie wyłączyłem to, nie ma ono żadnego efektu.

Czy moja jedyna opcja, żeby wykluczyć cglib od jparsec a następnie ręcznie dodać zależność od cglib z asm wykluczone? Wydaje mi się to nieco skomplikowane, ale działa.

+0

Tak, jest to ważna opcja rozwiązania tego problemu. Inną opcją jest umieszczenie zależności 'asm' od zależności' jparsec' w pom.xml. –

+0

@Andrew: dzięki. Umieszczenie 'asm' przed' jparsec' zezwalało na wykluczenie na działanie przeciwko 'asm', a nie tylko na' cglib'. Nie jestem pewien, czy jest to technicznie potrzebne (zostało zbudowane bez wyłączenia), ale dodałem je, by być wyraźnym. Jeśli dodasz odpowiedź, zaakceptuję ją. –

+0

Dodano odpowiedź. –

Odpowiedz

3

Jak na mój komentarz, masz 2 opcje, aby rozwiązać ten problem:

  1. Ten, który zasugerował, np wykluczyć cglib z jparsec i dodać cglib z wyłączeniem asm.
  2. Zlokalizuj zależność asm powyżej zależności jparsec.
4

Spodziewałbym się, że jeśli umieścisz przed jparsec w POM, żadne wykluczenie nie będzie wymagane. Zachowanie Maven "nearest definition" zostanie uruchomione, aby zapewnić tylko 4.1.

+0

To zadziałało dla mnie. Dzięki! – BPS