Maven Parboiled和Cglib依赖冲突
我正在开发一个使用cglib的程序,它是一个大型依赖项包(版本2.1_3)的一部分,并且已经编写了一个新特性,使用parboiled处理器进行一些标记到html的转换 这个问题产生于依赖冲突。 如果我什么也不做,我对parboiled特性的所有测试都会失败,消息如下:Maven Parboiled和Cglib依赖冲突,maven,cglib,parboiled,Maven,Cglib,Parboiled,我正在开发一个使用cglib的程序,它是一个大型依赖项包(版本2.1_3)的一部分,并且已经编写了一个新特性,使用parboiled处理器进行一些标记到html的转换 这个问题产生于依赖冲突。 如果我什么也不做,我对parboiled特性的所有测试都会失败,消息如下: java.lang.IncompatibleClassChangeError: org/parboiled/transform/ParserClassNode 如果我包括以下排除项 <exclusion>
java.lang.IncompatibleClassChangeError: org/parboiled/transform/ParserClassNode
如果我包括以下排除项
<exclusion>
<groupId>asm</groupId>
<artifactId>asm</artifactId>
</exclusion>
我正在使用pegdown 1.4.1
有什么建议吗?浏览互联网似乎建议使用新版本的asm(4.0或更高版本,目前我项目中的版本是1.5.3)可能会有所帮助,但尝试排除我拥有的asm并导入后一版本并没有帮助。问题是cglib很难迁移。这是因为:
- 较新的cglib版本与其早期版本不兼容
- 较新版本与其早期版本不兼容(cglib构建在asm之上)
我建议您对cglib也这样做。将整个依赖项移动到新包中(创建独立的名称空间),并仅使用此依赖项。这是丑陋的,但这是唯一的解决办法。其他项目,如Hibernate或Hibernate,也以同样的方式处理cglib。问题是cglib很难迁移。这是因为:
- 较新的cglib版本与其早期版本不兼容
- 较新版本与其早期版本不兼容(cglib构建在asm之上)
Caused by: java.lang.NoClassDefFoundError: Could not initialize class net.sf.cglib.proxy.Enhancer