maven-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Steven Schlansker <stevenschlans...@gmail.com>
Subject Re: Resolving classpath hell issues by allowing libraries to only use the version they request?
Date Mon, 05 Jan 2015 21:20:54 GMT

On Jan 5, 2015, at 1:03 PM, Kevin Burton <burton@spinn3r.com> wrote:

> I spent a ton of time tonight in classpath hell.
> 
> Basically, Apache Spark, Cassandra, and Cassandra Unit, and Guava, Jackson
> JSON, and Jetty have an INSANE dependency graph.  They're all trampling on
> each other with broken
> dependencies.  This results in a lot of <exclusion> work to get them to use
> sane bindings.
> 
> Has anyone done any work with only allowing a library to use the version of
> a class it requested?
> 
> So what would happen is every dependency would only be sourced from the
> version you require.
> 
> This could be done via a hierarchical class loader. Of course this would
> probably end up burning up some memory but probably worth it.
> 
> The main issue, is it WORTH it.. would this introduce new bugs?

You are basically talking about OSGi or some other such module system.
https://en.wikipedia.org/wiki/OSGi

In my opinion, it is actually easier to resolve the dependency conflicts among
the modules (usually by managing them upwards to the latest needed by any dependency)
and tracking this via a plugin [1]

Having such complicated class loader situations just leads to even more subtle and confusing
bugs IMO.

[1] https://github.com/ning/maven-dependency-versions-check-plugin



---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
For additional commands, e-mail: users-help@maven.apache.org


Mime
View raw message