You are viewing a plain text version of this content. The canonical link for it is here.
Posted to ivy-dev@incubator.apache.org by Maarten Coene <ma...@yahoo.com> on 2007/05/03 22:24:33 UTC

dependency on ivy.jar

Hi,

one of the things that bothers me since long is the dependency on an external ivy.jar when trying to build ivy using Ant.
As discussed some time ago on this list, there is a solution for this problem: 

step 1: compile "Ivy Core": these classes are the core of Ivy which doesn't has any external dependency.
step 2: compile "Ivy Ant": these classes are the Ant tasks.  They have 2 dependencies: "Ivy Core" and Ant itself.
step 3: use the classes from step1 and step2 to resolve the ivy.xml file from Ivy
step 4: also download the jars to the lib directory
step 5: compile "Ivy Optional": these classes are extensions of Ivy and may required 3th-party libraries. These 3th-party libraries have been downloaded in the previous step.
step 6: create ivy.jar (containing everything) and ivy-core.jar (containing only "Ivy Core").

I tried it out and it seems to work well.

Do you think this is ok? If no-one objects, I'll try to commit my changes this weekend. I didn't had to change much: only 2 source files and of course the Ant build files.

--
Maarten




__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 

Re: dependency on ivy.jar

Posted by Xavier Hanin <xa...@gmail.com>.
On 5/4/07, Maarten Coene <ma...@yahoo.com> wrote:
> Hi,
>
> one of the things that bothers me since long is the dependency on an external ivy.jar when trying to build ivy using Ant.
> As discussed some time ago on this list, there is a solution for this problem:
>
> step 1: compile "Ivy Core": these classes are the core of Ivy which doesn't has any external dependency.
> step 2: compile "Ivy Ant": these classes are the Ant tasks.  They have 2 dependencies: "Ivy Core" and Ant itself.
> step 3: use the classes from step1 and step2 to resolve the ivy.xml file from Ivy
> step 4: also download the jars to the lib directory
> step 5: compile "Ivy Optional": these classes are extensions of Ivy and may required 3th-party libraries. These 3th-party libraries have been downloaded in the previous step.
> step 6: create ivy.jar (containing everything) and ivy-core.jar (containing only "Ivy Core").
>
> I tried it out and it seems to work well.
>
> Do you think this is ok? If no-one objects, I'll try to commit my changes this weekend. I didn't had to change much: only 2 source files and of course the Ant build files.
This seems like a very good thing to me. The only point is about the
packaging, ivy-core used to caintain everything but ant related
classes, and I think we should keep an artifact like this one, which
is used at least in IvyDE.

But this is a minor thing that can be fixed later.

Xavier
>
> --
> Maarten
>
>
>
>
> __________________________________________________
> Do You Yahoo!?
> Tired of spam?  Yahoo! Mail has the best spam protection around
> http://mail.yahoo.com
>


-- 
Learn Ivy at ApacheCon: http://www.eu.apachecon.com/
Manage your dependencies with Ivy!
http://incubator.apache.org/ivy/

Re: dependency on ivy.jar

Posted by Stefan Bodewig <bo...@apache.org>.
On Thu, 3 May 2007, Maarten Coene <ma...@yahoo.com> wrote:

> one of the things that bothers me since long is the dependency on an
> external ivy.jar when trying to build ivy using Ant.  As discussed
> some time ago on this list, there is a solution for this problem:

Sounds great!

Gump technically builds without downloading ivy.jar as well.  Of
course it does so by providing the dependencies via CLASSPATH.

If you want to we can split the Gump build process into four steps
that are roughly equivalent to

> step 1: compile "Ivy Core": these classes are the core of Ivy which
> doesn't has any external dependency.

Well, you'd probably use Ant to compile them (bootstrap-ant should be
enough in Gump terms, plus an XML parser).

> step 2: compile "Ivy Ant": these classes are the Ant tasks.  They
> have 2 dependencies: "Ivy Core" and Ant itself.

So it'd depend on step1 plus the dependencies of step1.

> step 3: use the classes from step1 and step2 to resolve the ivy.xml
> file from Ivy

not necessary in Gump.

> step 4: also download the jars to the lib directory step 5: compile
> "Ivy Optional": these classes are extensions of Ivy and may required
> 3th-party libraries.

More or less what the current Gump build looks like, but would depend
on step2.

Let me know whether you want to go that route and need some
assistance.

> These 3th-party libraries have been downloaded in the previous step.
> step 6: create ivy.jar (containing everything) and ivy-core.jar
> (containing only "Ivy Core").

ivy.jar >= ivy-core.jar?  Or do you mean ivy.jar would contain
everything except for core?

Stefan

Re: dependency on ivy.jar

Posted by Xavier Hanin <xa...@gmail.com>.
On 5/4/07, Gilles Scokart <gs...@gmail.com> wrote:
> >
> > On 5/4/07, Gilles Scokart <gs...@gmail.com> wrote:
> > > +1.
> > >
> > > It is cleaner.
> > > Moreover, it adds an integration test to the build.
> > The only thing we have to think about is to be able to fallback to use
> > a provided ivy.jar, to still be able to build Ivy even if we introduce
> > a problem in the core (at least to build the fix :-)).
> >
> > Xavier
>
> Initially I also thought that.  But it is actually not correct.  The magic
> is that you will only be able to build your fix ... if it fix the bug.
Indeed, you're absolutely right. I should be too tired after 4 days at
ApacheCon :)

Xavier
>
> Am I wrong?
>
> Gilles
>
>
>


-- 
Learn Ivy at ApacheCon: http://www.eu.apachecon.com/
Manage your dependencies with Ivy!
http://incubator.apache.org/ivy/

RE: dependency on ivy.jar

Posted by Gilles Scokart <gs...@gmail.com>.
> 
> On 5/4/07, Gilles Scokart <gs...@gmail.com> wrote:
> > +1.
> >
> > It is cleaner.
> > Moreover, it adds an integration test to the build.
> The only thing we have to think about is to be able to fallback to use
> a provided ivy.jar, to still be able to build Ivy even if we introduce
> a problem in the core (at least to build the fix :-)).
> 
> Xavier

Initially I also thought that.  But it is actually not correct.  The magic
is that you will only be able to build your fix ... if it fix the bug. 

Am I wrong?

Gilles



Re: dependency on ivy.jar

Posted by Xavier Hanin <xa...@gmail.com>.
On 5/4/07, Gilles Scokart <gs...@gmail.com> wrote:
> +1.
>
> It is cleaner.
> Moreover, it adds an integration test to the build.
The only thing we have to think about is to be able to fallback to use
a provided ivy.jar, to still be able to build Ivy even if we introduce
a problem in the core (at least to build the fix :-)).

Xavier
>
> Gilles
>
>
>
> > -----Original Message-----
> > From: Maarten Coene [mailto:maarten_coene@yahoo.com]
> > Sent: vendredi 4 mai 2007 0:25
> > To: ivy-dev
> > Subject: dependency on ivy.jar
> >
> > Hi,
> >
> > one of the things that bothers me since long is the dependency on an
> > external ivy.jar when trying to build ivy using Ant.
> > As discussed some time ago on this list, there is a solution for this
> > problem:
> >
> > step 1: compile "Ivy Core": these classes are the core of Ivy which
> > doesn't has any external dependency.
> > step 2: compile "Ivy Ant": these classes are the Ant tasks.  They have 2
> > dependencies: "Ivy Core" and Ant itself.
> > step 3: use the classes from step1 and step2 to resolve the ivy.xml file
> > from Ivy
> > step 4: also download the jars to the lib directory
> > step 5: compile "Ivy Optional": these classes are extensions of Ivy and
> > may required 3th-party libraries. These 3th-party libraries have been
> > downloaded in the previous step.
> > step 6: create ivy.jar (containing everything) and ivy-core.jar
> > (containing only "Ivy Core").
> >
> > I tried it out and it seems to work well.
> >
> > Do you think this is ok? If no-one objects, I'll try to commit my changes
> > this weekend. I didn't had to change much: only 2 source files and of
> > course the Ant build files.
> >
> > --
> > Maarten
> >
> >
> >
> >
> > __________________________________________________
> > Do You Yahoo!?
> > Tired of spam?  Yahoo! Mail has the best spam protection around
> > http://mail.yahoo.com
>
>


-- 
Learn Ivy at ApacheCon: http://www.eu.apachecon.com/
Manage your dependencies with Ivy!
http://incubator.apache.org/ivy/

RE: dependency on ivy.jar

Posted by Gilles Scokart <gs...@gmail.com>.
+1.

It is cleaner.
Moreover, it adds an integration test to the build.

Gilles 



> -----Original Message-----
> From: Maarten Coene [mailto:maarten_coene@yahoo.com]
> Sent: vendredi 4 mai 2007 0:25
> To: ivy-dev
> Subject: dependency on ivy.jar
> 
> Hi,
> 
> one of the things that bothers me since long is the dependency on an
> external ivy.jar when trying to build ivy using Ant.
> As discussed some time ago on this list, there is a solution for this
> problem:
> 
> step 1: compile "Ivy Core": these classes are the core of Ivy which
> doesn't has any external dependency.
> step 2: compile "Ivy Ant": these classes are the Ant tasks.  They have 2
> dependencies: "Ivy Core" and Ant itself.
> step 3: use the classes from step1 and step2 to resolve the ivy.xml file
> from Ivy
> step 4: also download the jars to the lib directory
> step 5: compile "Ivy Optional": these classes are extensions of Ivy and
> may required 3th-party libraries. These 3th-party libraries have been
> downloaded in the previous step.
> step 6: create ivy.jar (containing everything) and ivy-core.jar
> (containing only "Ivy Core").
> 
> I tried it out and it seems to work well.
> 
> Do you think this is ok? If no-one objects, I'll try to commit my changes
> this weekend. I didn't had to change much: only 2 source files and of
> course the Ant build files.
> 
> --
> Maarten
> 
> 
> 
> 
> __________________________________________________
> Do You Yahoo!?
> Tired of spam?  Yahoo! Mail has the best spam protection around
> http://mail.yahoo.com