2012-12-13 6 views
5

Mon projet dépend de jparsec, qui dépend de cglib, qui dépend de asm. Mon projet a également dépend directement asm, mais une version plus récente que celle cglib dépend:Exclusion de dépendance transitive imbriquée dans maven

enter image description here

Il semble que je ne peux pas exclure asm de ma dépendance jparsec. Quand je tente de l'exclure avec Eclipse, cela ne change rien à mon pom. Si je l'exclure manuellement, cela n'a aucun effet.

est ma seule option ici pour exclure cglib de jparsec puis ajouter manuellement une dépendance cglib avec asm exclus? Cela me semble un peu compliqué, mais ça fonctionne.

+0

Oui, c'est une option valide pour résoudre ce problème. Une autre option consiste à placer votre dépendance 'asm' au-dessus de la dépendance' jparsec' dans pom.xml. –

+0

@Andrew: merci. Mettre 'asm' avant' jparsec' permettait à l'exclusion de fonctionner contre 'asm' plutôt que seulement contre' cglib'. Je ne suis pas sûr que ce soit techniquement nécessaire (construit sans l'exlusion), mais je l'ai quand même ajouté pour être explicite. Si vous ajoutez une réponse, je l'accepterai. –

+0

Ajouté la réponse. –

Répondre

3

Comme par mon commentaire, vous avez 2 options pour résoudre ce problème:

  1. Celui que vous suggérez, par exemple excluez cglib de jparsec et ajoutez cglib avec asm exclus.
  2. Recherchez votre dépendance asm au-dessus de la dépendance jparsec.
4

Je m'attendais à ce que si vous mettez asm avant jparsec dans votre POM, aucune exclusion ne serait nécessaire. Le comportement Maven "nearest definition" entrerait en vigueur pour s'assurer que seul 4.1 est utilisé.

+0

Cela a fonctionné pour moi. Merci! – BPS

Questions connexes