maven-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Setter Guo <>
Subject Straight line or Chaos? (My thoughts on resolving dependencies problems for open source libraries)
Date Tue, 02 Mar 2010 12:23:03 GMT
Hi Maven users and devs,

I think a lot of guys pain on unconsistency of open-source libraries. For example, if libA
depends on libB v1, and libC depends on libB v2. If someone(libD) want to use libA and libC
at the same time, it will face problem on upgrading libA to match libB v1. Once there are
a lot of libraries, it is nightmare to make everyone on the same page.

I don't know whether there are some solutions currently. If there are, thank you very much
to let me know.

In my thought, I think maybe we can do something to make the open-source world to a line.
Because maven works as a software management tool, it is very make-sense to discuss my thoughts
here, hope you are interested in this discussion. Below is a short description of my thought.

1) In maven world, we use "mvn install" to build. In this stage, it is possible to sync-up
the libraries version between repositories and local copies. As example above, once libB upgrades
to v2, the repository should get the information, and the local copy will get this information
when it connect the repository. This is very simple.

2) In advance, the repository can handle the dependencies between libs. For example above,
it keeps "libC => libB v2" and "libA => libB v1" informations. Because libB has been
upgraded to v2, libA may get warning to notify the owners to upgrade the library.

3) So, once someone use libs on maven, based on the dependencies provided by maven, it can
automatically create a dependencies graph, and version inside will indicate whether there
are conflicts. That means, libD devs will know there are two different versions of libB used,
and will introduce conflicts.

I don't know whether there are some plugins doing thing like above, I hope so. Anyone knows
it, please let me know. Many Thanks!

Best Regards,

  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message