2012-12-13 16 views
5

Il mio progetto dipende da jparsec, che dipende da cglib, che dipende da asm. Il mio progetto anche dipende direttamente asm, ma una versione più recente di quella cglib dipende da:Esclusione della dipendenza transitiva nidificata in Maven

enter image description here

Sembra che io non posso escludere asm dal mio jparsec dipendenza. Quando provo a escluderlo con Eclipse, non apporta modifiche al mio pom. Se lo escludo manualmente, non ha alcun effetto.

è la mia unica opzione qui di escludere cglib da jparsec e poi aggiungere manualmente una dipendenza da cglib con asm esclusi? Questo mi sembra un po 'complicato, ma funziona.

+0

Sì, questa è un'opzione valida per risolvere questo problema. Un'altra opzione è quella di posizionare la dipendenza 'asm' sopra la dipendenza' jparsec' in pom.xml. –

+0

@Andrew: grazie. Mettere 'asm' prima di' jparsec' ha permesso l'esclusione di lavorare contro 'asm' piuttosto che solo contro' cglib'. Non sono sicuro che sia tecnicamente più necessario (è stato costruito senza l'eccezione), ma l'ho aggiunto comunque per essere esplicito. Se aggiungi una risposta, la accetterò. –

+0

Aggiunta la risposta. –

risposta

3

Come per il mio commento, si hanno 2 opzioni per risolvere questo problema:

  1. Quello che avete suggerito, ad esempio, escludi cglib da jparsec e aggiungi cglib con asm escluso.
  2. Individuare la dipendenza asm oltre la dipendenza jparsec.
4

mi sarei aspettato che se si mette asm prima jparsec in POM, senza esclusione sarebbe necessario. Il comportamento di Maven "nearest definition" si avviava per garantire che venga utilizzato solo lo 4.1.

+0

Questo ha funzionato per me. Grazie! – BPS

Problemi correlati