ant-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Xavier Hanin" <xavier.ha...@gmail.com>
Subject Re: Ivy jar packaging
Date Thu, 20 Dec 2007 17:16:03 GMT
On 12/19/07, Gilles Scokart <gscokart@gmail.com> wrote:
>
> I'm confused.
> Is it really related to IvyDE or just to launching ant from eclipse?
> Also, If you don't put the the ivy ant task into the ant classpath, but
> only
> the core.  How does ant launched from eclipse find those tasks?
> I guess I miss something.


The problem is the use of ant extraClasspath extension point in IvyDE (not
sure of the exact extension point name). This extension point allows plugins
to contribute to the ant classpath in eclipse, but only with a jar. The
problem is that when loading these classes, they first ask the plugin
classloader to load the class, so if the plugin actually has the Ivy ant
tasks in its classpath (and IvyDE requires ivy, so it has these classes if
it's not using ivy-core.jar) then the plugin classloader is used to load
these classes, BUT the plugin classloader has no access to the ant classes
themselves loaded in another classloader. So the workaround was to use
ivy-core.jar in IvyDE plugin classpath, and contribute ivy.jar as an ant
extra classpath entry. So if we stop providing ivy-core, we won't be able to
contribute ivy as an ant extra classpath entry, and people will have to
configure Ant classpath manually in eclipse even when they have IvyDE
installed.

Xavier

Anyway, I think it is a good idea to simplify our main distribution.
> However, once we will have a clear published interface, I think we could
> further split the distribution in the maven repository.
>
> Gilles
>
> 2007/12/19, Xavier Hanin <xavier.hanin@gmail.com>:
> >
> > Hi,
> >
> > ATM Ivy is provided in the form of two jars: ivy.jar and ivy-core.jar.
> The
> > ivy-core.jar is basically the same as ivy.jar except that it doesn't
> > contain
> > Ant related classes (mostly Ivy Ant tasks). This was introduced a long
> > time
> > ago for IvyDE, as a workaround to a classloader issue when contributing
> > ivy.jar to ant classpath in eclipse.
> >
> > The downside of this is that most people do not understand the
> difference
> > between the two, and I often see people putting both ivy.jar and
> > ivy-core.jar in ant/lib. Not that much a problem, until someone change
> > only
> > one jar out of the two, which can lead to strange bugs difficult to
> > diagnose
> > if ivy-core.jar is before ivy.jar in the classpath.
> >
> > Moreover, in recent tests I've found that the eclipse ant classpath
> > problem
> > was still present in some cases, and preferred to use an easy and
> > straightforward solution: configure ant classpath manually in eclipse to
> > add
> > ivy.jar (or point to another ant home where ivy.jar is already present).
> >
> > Thus I'm wondering if it wouldn't be easier to abandon ivy-core.jar, and
> > tell IvyDE users they have to configure their ant classpath manually IF
> > they
> > want to use Ivy tasks in their ant build from eclipse (as they have to
> do
> > for any other custom ant tasks anyway).
> >
> > WDYT?
> >
> > Xavier
> > --
> > Xavier Hanin - Independent Java Consultant
> > http://xhab.blogspot.com/
> > http://ant.apache.org/ivy/
> > http://www.xoocode.org/
> >
>



-- 
Xavier Hanin - Independent Java Consultant
http://xhab.blogspot.com/
http://ant.apache.org/ivy/
http://www.xoocode.org/

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