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


      

Reply via email to