maven-dev mailing list archives

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

Sorry for duplication, but yahoo mail seems very difficult to use. So I open
a gmail account, below is copy of the previous mail. If you have thoughts,
how about reply on this thread? Many Thanks!

=============================================================================

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,
Setter

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