Java Easymock3 Spring4.0.0.0发布cglib兼容性

Java Easymock3 Spring4.0.0.0发布cglib兼容性,java,spring-aop,easymock,cglib,Java,Spring Aop,Easymock,Cglib,我按照给出的建议,尝试使用支持SpringAOP的方法进行一些单元测试。但是,我怀疑spring core下重新打包的cglib类和cglib-nodep-2.2.jar相互冲突,导致我的类被类加载器代理加载两次。这将导致以下错误: Caused by: java.lang.LinkageError: loader (instance of sun/misc/Launcher$AppClassLoader): attempted duplicate class definition for

我按照给出的建议,尝试使用支持SpringAOP的方法进行一些单元测试。但是,我怀疑spring core下重新打包的cglib类和cglib-nodep-2.2.jar相互冲突,导致我的类被类加载器代理加载两次。这将导致以下错误:

Caused by: java.lang.LinkageError: loader (instance of  sun/misc/Launcher$AppClassLoader): attempted  duplicate class definition for name:
工具:

带有cglib-nodep-2.2.jar传递依赖项的easmock-3.0 spring-x-4.0.0.是否重新打包了版本的cglib?班级 junit-4.8.1 排除可传递的cglib nodep依赖项显然没有帮助——所有测试,包括非sring aop测试,也开始失败

我也尝试了发布的答案:在再次运行测试之前清理目标文件夹,但没有成功

这个问题真的是因为cglib版本之间的冲突吗?如果是这样的话,我应该使用哪个版本来停止加载我的类两次呢

1.7 4.0.3.1发布 2.2.2
检查是否使用了所有依赖项。检查WEB-INF/lib文件夹或使用EclipsePOM编辑器中的Dependency hierarchy视图来了解重复的JAR,删除旧版本。我做到了,cglib家族中没有重复的JAR。spring人员已经将cglib类重新打包到他们的spring核心中,这意味着cglib不是一个可传递的依赖项,我们可以在pom依赖项视图中找到重复的版本。您可以查看以下链接:这正是我提到的,这可能是cglib版本冲突!就像post:所说的,他们希望我们使用cglib-3.0重新打包的类,而不是spring-3.2中的任何其他cglib。然而在我的例子中,easymock附带的cglib nodep包含的不仅仅是spring可以提供的功能。这就是问题所在。据我所知,Spiring4使用了重新打包的CGLIB3版本。这可能是一场彻底的ASM冲突。你试过升级cglib吗?你知道这个问题的时代吗?