On Sat, Oct 16, 2010 at 10:52 AM, sebb <[email protected]> wrote:
>
> Why? I don't see the point.
>
We had this discussion long ago. Let me try to summarize for you.
Suppose Project X wants to use commons foo version 2. Suppose also
that Project X uses Project Y as a dependency and Project Y uses
commons foo version 1 ("jar hell"). Now, foo version 1 and 2 are
binary incompatible. If we leave them with the same group/artifact
and with different versions, then Maven will only allow foo version 2
on the classpath as a dependency because it is the most recent. So,
the code in Project Y won't work. However, if foo version 2 changes
its artifact id and changes its package name, the code in Project X
can code against org.apache.commons.foo2 and the code in Project Y can
code against org.apache.commons.foo and both will stay happy. Also,
Maven will allow both on the classpath at the same time since they're
not the same artifact id.
Note: yes I know this problem goes away with OSGi, but not everyone is
using OSGi, nor should we require them to do so.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]