2012-12-13 72 views
5

我的项目依赖于jparsec,这取决于cglib,这取决于asm。我的项目还直接取决于asm,但比一个cglib较新的版本取决于:排除maven中的嵌套传递依赖

enter image description here

看来我无法从我的jparsec依赖排除asm。当我尝试用Eclipse排除它时,它不会改变我的pom。如果我手动将其排除,则不起作用。

我是这里唯一的选择,从jparsec排除cglib然后手动添加上cglibasm依赖排除在外?这对我来说似乎有些复杂,但确实奏效。

+0

是的,这是解决此问题的有效选项。另一种选择是将'asm'依赖放在pom.xml中'jparsec'依赖的上方。 –

+0

@安德鲁:谢谢。在'jparsec'之前放置'asm'允许排除对'asm'而不是仅针对'cglib'。我不确定它是不是技术上需要的(它的构建没有exlusion),但无论如何我已经添加它以明确。如果你添加一个答案,我会接受它。 –

+0

添加了答案。 –

回答

3

按我的意见,你有2个选项来解决这个问题:

  1. ,你提出的一个,例如从jparsec排除cglib并添加cglib,排除asm
  2. 找到您的asm依赖关系,高于jparsec依赖关系。
4

我以为如果你把asm放在你的POM之前jparsec,不需要排除。 Maven "nearest definition"行为将会启动,以确保仅使用4.1

+0

这对我有用。谢谢! – BPS