On Sun, Jun 9, 2019 at 7:36 AM sebb <seb...@gmail.com> wrote:

>
> Huh?
> That can still cause jar issues, *precisely because* only one jar will
> reach the Java classpath.
>
> Suppose there is jar1 with API-V1.
> This is depended on by app1 and app2.
>
> Then jar2 is produced with API-V2 (not BC-compatible with API-V1)
> Update app2 to use jar2.
>
> Assuming jar2 is a later version than jar1, the classpath will no
> longer contain jar1.
> However jar1 contains objects needed by app1.
>

My "jar hell" I usually think of is when two different jars are on the
classpath at the same time and they expose the same class name.
You're talking about the transitive dependency "jar hell" which
definitely can happen.  Sorry for my confusion.

So, in order to get two different jars on the classpath at the same
time (which I thought was what the original request was about in order
to compare APIs), you'd need to change the maven coordinates to allow
them to co-exist.  When you do that, you'll need to change the package
names in order to avoid collisions.

If folks are publishing jars for others to consume with alpha/beta
dependencies (which may very well change), I'd think that's really not
a good idea and we should document our alpha/beta releases as such
(although that's a pretty standard understanding).  The other option
is to just keep with SNAPSHOTs and tell folks to point to our snapshot
repository.

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
For additional commands, e-mail: dev-h...@commons.apache.org

Reply via email to