maven-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jörg Schaible <>
Subject The CGLIB issue or how transitive dependencies break an application
Date Mon, 14 Nov 2005 11:45:37 GMT
Hello folks,

first let me describe the scenario: CGLIB is used in a wide range of product as well as ASM.
CGLIB itself is based on parts of ASM. CGLIB 1.x is dependent on ASM 1.x, but it provided
also a cglib-full artifact, that contained the used sources from ASM 1.x. Therefore there
are quite some projects (e.g. jmock-cglib), that depends on cglib-full.

Major headache started, when ASM 2.x was released, since it is neither compatible to ASM 1.x
nor you can use both ASM versions in the classpath. New CGLIB 2.x is still dependent on ASM
1.x, but they provide now a new artifact cglib-nodep 2.x, that contains again the necessary
ASM 1.x classes, but they are located in a different package.  This allows a coexistence of
CGLIB and the new ASM version in one classpath.

The current problem with the transient dependencies are projects, with (transitive) dependencies
on cglib-full-1.x and asm-2.x (like Groovy or some artifacts of NanoContainer). cglib-nodep-2.x
is a compatible replacement for cglib-full-1.x, but I find no way to specify this anywhere.

- Jörg

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message