You are viewing a plain text version of this content. The canonical link for it is here.
Posted to ivy-user@ant.apache.org by Matt Benson <gu...@yahoo.com> on 2007/03/05 17:10:51 UTC

Ivy projects; day-to-day usage in IDEs

I am just getting my feet wet in Ivy and haven't yet
managed to work this out for myself:  In e.g. Eclipse
(but I'd like to know about IDEA and other IDEs as
well), what is the generally accepted "right way" of
working with Ivy?  Using Ant builds exclusively, for
starters?  What about latest-integration builds +
classpaths + code completion, etc.?  Hopefully this
gives you an idea of the kinds of issues and pitfalls
I am thinking of, and will allow some of you to
explain how they tend to work (or not) with Ivy in an
IDE.

Thanks,
Matt


 
____________________________________________________________________________________
Be a PS3 game guru.
Get your game face on with the latest PS3 news and previews at Yahoo! Games.
http://videogames.yahoo.com/platform?platform=120121

Re: Ivy projects; day-to-day usage in IDEs

Posted by Xavier Hanin <xa...@gmail.com>.
On 3/7/07, Jean-Baptiste Quenot <jb...@apache.org> wrote:
>
> * Xavier Hanin:
>
> > And where is the IvyDE (I know where are the sources) ...
> >
> > http://incubator.apache.org/ivy/ivyde/
>
> Good to know, but Google doesn't know it:
>
> link:incubator.apache.org/ivy/ivyde/
>
> Your search - link:incubator.apache.org/ivy/ivyde/ - did not match
> any documents.
>
> Are you sure the page /ivy/links.html is being indexed?


I think so, but the link on that page was not correct until monday, so maybe
it will take longer. Another problem for google is the format we use which
is not really standard, and as such it may cause troubles for web
crawler.This is something requiring some investigation....

- Xavier

And this search also presents weird results:
>
> ivyde site:incubator.apache.org
>
> TIA,
> --
>      Jean-Baptiste Quenot
> aka  John Banana   Qwerty
> http://caraldi.com/jbq/
>

Re: Ivy projects; day-to-day usage in IDEs

Posted by Jean-Baptiste Quenot <jb...@apache.org>.
* Xavier Hanin:

> And where is the IvyDE (I know where are the sources) ...
>
> http://incubator.apache.org/ivy/ivyde/

Good to know, but Google doesn't know it:

link:incubator.apache.org/ivy/ivyde/

Your search - link:incubator.apache.org/ivy/ivyde/ - did not match
any documents. 

Are you sure the page /ivy/links.html is being indexed?

And this search also presents weird results:

ivyde site:incubator.apache.org

TIA,
-- 
     Jean-Baptiste Quenot
aka  John Banana   Qwerty
http://caraldi.com/jbq/

Re: Ivy projects; day-to-day usage in IDEs

Posted by Xavier Hanin <xa...@gmail.com>.
On 3/5/07, Blšták Peter <pe...@softec.sk> wrote:
>
> Nice feature.
> Where is the patch ?


The patch is attached to the corresponding issue in JIRA, but JIRA is still
pending migration to apache (I will send another e-mail to talk about that
on the ivy-dev list). If you want to get the patch now the only thing you
can do is check the migration issue and look in the import zip:
https://issues.apache.org/jira/browse/INFRA-1131


And where is the IvyDE (I know where are the sources) ...


http://incubator.apache.org/ivy/ivyde/

and kind of roadmap for Ivy and IvyDE.


Difficult to say, it depends on committers availability and on the
contributions. I will discuss that on another thread on the ivy-dev mailing
list, and then report on this list if we reach some kind of consensus.

- Xavier

P.
>
> ________________________________
>
> From: Xavier Hanin [mailto:xavier.hanin@gmail.com]
> Sent: po 5. 3. 2007 18:43
> To: ivy-user@incubator.apache.org
> Subject: Re: Ivy projects; day-to-day usage in IDEs
>
>
>
> On 3/5/07, Matt Benson <gu...@yahoo.com> wrote:
> >
> > > plugin improves, you can
> > > even benefit from interesting things like the
> > > detection of your open
> > > projects to inject project dependencies on the fly
> > > (not yet commited on
> > > IvyDE, but there's a patch available).
> >
> > Not sure I understood what you are saying IvyDE can't
> > do now that the patch will allow, sorry.  And since
> > IvyDE's JIRA is currently unavailable I can't go there
> > for clarification.  :)
>
>
> Yes, IvyDE is still not migrated to Apache, but that's another problem.
> This
> patch will allow you to have project dependencies in eclipse instead of
> dependencies on jar, depending on the projects open in your IDE. Imagine
> you
> work on two components A and B, A depend on B. Because you need to modify
> both you it's easier to have a project dependency in eclipse, so that when
> you navigate from A to B you actually get B classes, and not the class
> editor on a B class from the B jar in your A classpath. This is nice, but
> you can already do it, by adding the project dependency by hand. The
> problem
> is that if you commit your .classpath everybody will have this project
> dependency, including maybe other developpers who don't work on B, and
> thus
> do not have B project open in eclipse. With the patch you don't have to
> worry about that, IvyDE will automatically use a project dependency when
> the
> other project is opened in eclipse, and a simple jar dependency when it
> isn't.
>
> - Xavier
>
> > I know others prefer to generate/synchronize IDE
> > > metainformation (.classpath
> > > for eclipse), which make your development
> > > environment less dependent on Ivy,
> > > which can be a good thing for several reasons (IDE
> > > stability, habits, ...).
> > > Last it's possible to work with absolutely no tool
> > > for the IDE, I worked
> > > like that at least during my first year with Ivy,
> > > and it wasn't so bad: use
> > > retrieve to put your libs in a lib directory,
> > > without versions in the the
> > > pattern so that your file names do not change too
> > > often, and update
> > > .classpath manually only when a dependency is
> > > added/removed. Now I prefer
> > > using IvyDE, but this solution has the advantage to
> > > work in all IDEs.
> >
> > Thanks for your take on this!
> >
> > -Matt
> >
> > >
> > > - Xavier
> > >
> > > Thanks,
> > > > Matt
> > > >
> > > >
> > > >
> > > >
> > > >
> > >
> >
> >
> ____________________________________________________________________________________
> > > > Be a PS3 game guru.
> > > > Get your game face on with the latest PS3 news and
> > > previews at Yahoo!
> > > > Games.
> > > >
> > > http://videogames.yahoo.com/platform?platform=120121
> > > >
> > >
> >
> >
> >
> >
> >
> >
> ____________________________________________________________________________________
> > Sucker-punch spam with award-winning protection.
> > Try the free Yahoo! Mail Beta.
> > http://advision.webevents.yahoo.com/mailbeta/features_spam.html
> >
>
>
>

RE: Ivy projects; day-to-day usage in IDEs

Posted by Blšták Peter <pe...@softec.sk>.
Nice feature.
Where is the patch ?
 
And where is the IvyDE (I know where are the sources) ... and kind of roadmap for Ivy and IvyDE.
 
P.

________________________________

From: Xavier Hanin [mailto:xavier.hanin@gmail.com]
Sent: po 5. 3. 2007 18:43
To: ivy-user@incubator.apache.org
Subject: Re: Ivy projects; day-to-day usage in IDEs



On 3/5/07, Matt Benson <gu...@yahoo.com> wrote:
>
> > plugin improves, you can
> > even benefit from interesting things like the
> > detection of your open
> > projects to inject project dependencies on the fly
> > (not yet commited on
> > IvyDE, but there's a patch available).
>
> Not sure I understood what you are saying IvyDE can't
> do now that the patch will allow, sorry.  And since
> IvyDE's JIRA is currently unavailable I can't go there
> for clarification.  :)


Yes, IvyDE is still not migrated to Apache, but that's another problem. This
patch will allow you to have project dependencies in eclipse instead of
dependencies on jar, depending on the projects open in your IDE. Imagine you
work on two components A and B, A depend on B. Because you need to modify
both you it's easier to have a project dependency in eclipse, so that when
you navigate from A to B you actually get B classes, and not the class
editor on a B class from the B jar in your A classpath. This is nice, but
you can already do it, by adding the project dependency by hand. The problem
is that if you commit your .classpath everybody will have this project
dependency, including maybe other developpers who don't work on B, and thus
do not have B project open in eclipse. With the patch you don't have to
worry about that, IvyDE will automatically use a project dependency when the
other project is opened in eclipse, and a simple jar dependency when it
isn't.

- Xavier

> I know others prefer to generate/synchronize IDE
> > metainformation (.classpath
> > for eclipse), which make your development
> > environment less dependent on Ivy,
> > which can be a good thing for several reasons (IDE
> > stability, habits, ...).
> > Last it's possible to work with absolutely no tool
> > for the IDE, I worked
> > like that at least during my first year with Ivy,
> > and it wasn't so bad: use
> > retrieve to put your libs in a lib directory,
> > without versions in the the
> > pattern so that your file names do not change too
> > often, and update
> > .classpath manually only when a dependency is
> > added/removed. Now I prefer
> > using IvyDE, but this solution has the advantage to
> > work in all IDEs.
>
> Thanks for your take on this!
>
> -Matt
>
> >
> > - Xavier
> >
> > Thanks,
> > > Matt
> > >
> > >
> > >
> > >
> > >
> >
>
> ____________________________________________________________________________________
> > > Be a PS3 game guru.
> > > Get your game face on with the latest PS3 news and
> > previews at Yahoo!
> > > Games.
> > >
> > http://videogames.yahoo.com/platform?platform=120121
> > >
> >
>
>
>
>
>
> ____________________________________________________________________________________
> Sucker-punch spam with award-winning protection.
> Try the free Yahoo! Mail Beta.
> http://advision.webevents.yahoo.com/mailbeta/features_spam.html
>



Re: Ivy projects; day-to-day usage in IDEs

Posted by Xavier Hanin <xa...@gmail.com>.
On 3/5/07, Matt Benson <gu...@yahoo.com> wrote:
>
> > plugin improves, you can
> > even benefit from interesting things like the
> > detection of your open
> > projects to inject project dependencies on the fly
> > (not yet commited on
> > IvyDE, but there's a patch available).
>
> Not sure I understood what you are saying IvyDE can't
> do now that the patch will allow, sorry.  And since
> IvyDE's JIRA is currently unavailable I can't go there
> for clarification.  :)


Yes, IvyDE is still not migrated to Apache, but that's another problem. This
patch will allow you to have project dependencies in eclipse instead of
dependencies on jar, depending on the projects open in your IDE. Imagine you
work on two components A and B, A depend on B. Because you need to modify
both you it's easier to have a project dependency in eclipse, so that when
you navigate from A to B you actually get B classes, and not the class
editor on a B class from the B jar in your A classpath. This is nice, but
you can already do it, by adding the project dependency by hand. The problem
is that if you commit your .classpath everybody will have this project
dependency, including maybe other developpers who don't work on B, and thus
do not have B project open in eclipse. With the patch you don't have to
worry about that, IvyDE will automatically use a project dependency when the
other project is opened in eclipse, and a simple jar dependency when it
isn't.

- Xavier

> I know others prefer to generate/synchronize IDE
> > metainformation (.classpath
> > for eclipse), which make your development
> > environment less dependent on Ivy,
> > which can be a good thing for several reasons (IDE
> > stability, habits, ...).
> > Last it's possible to work with absolutely no tool
> > for the IDE, I worked
> > like that at least during my first year with Ivy,
> > and it wasn't so bad: use
> > retrieve to put your libs in a lib directory,
> > without versions in the the
> > pattern so that your file names do not change too
> > often, and update
> > .classpath manually only when a dependency is
> > added/removed. Now I prefer
> > using IvyDE, but this solution has the advantage to
> > work in all IDEs.
>
> Thanks for your take on this!
>
> -Matt
>
> >
> > - Xavier
> >
> > Thanks,
> > > Matt
> > >
> > >
> > >
> > >
> > >
> >
>
> ____________________________________________________________________________________
> > > Be a PS3 game guru.
> > > Get your game face on with the latest PS3 news and
> > previews at Yahoo!
> > > Games.
> > >
> > http://videogames.yahoo.com/platform?platform=120121
> > >
> >
>
>
>
>
>
> ____________________________________________________________________________________
> Sucker-punch spam with award-winning protection.
> Try the free Yahoo! Mail Beta.
> http://advision.webevents.yahoo.com/mailbeta/features_spam.html
>

Re: Ivy projects; day-to-day usage in IDEs

Posted by Matt Benson <gu...@yahoo.com>.
--- Xavier Hanin <xa...@gmail.com> wrote:

> On 3/5/07, Matt Benson <gu...@yahoo.com> wrote:
> >
> > I am just getting my feet wet in Ivy and haven't
> yet
> > managed to work this out for myself:  In e.g.
> Eclipse
> > (but I'd like to know about IDEA and other IDEs as
> > well), what is the generally accepted "right way"
> of
> > working with Ivy?  Using Ant builds exclusively,
[SNIP]
> I guess you can get several different opinions on
> this subject. Mine is that

I hope to.  ;)

> I prefer to use a plugin for the IDE (IvyDE for
> Eclipse, but there are also
> another at least for IDEA). One big advantage is
> that you have code
> completion while editing ivy.xml. Another is that
> IMO it's the easier way to
> keep your classpath in sync with Ivy. And when the

Ah, for some reason it didn't even occur to me that
IvyDE would do more than provide ivy.xml editing. 
Stupid of me.

> plugin improves, you can
> even benefit from interesting things like the
> detection of your open
> projects to inject project dependencies on the fly
> (not yet commited on
> IvyDE, but there's a patch available).

Not sure I understood what you are saying IvyDE can't
do now that the patch will allow, sorry.  And since
IvyDE's JIRA is currently unavailable I can't go there
for clarification.  :)

> I know others prefer to generate/synchronize IDE
> metainformation (.classpath
> for eclipse), which make your development
> environment less dependent on Ivy,
> which can be a good thing for several reasons (IDE
> stability, habits, ...).
> Last it's possible to work with absolutely no tool
> for the IDE, I worked
> like that at least during my first year with Ivy,
> and it wasn't so bad: use
> retrieve to put your libs in a lib directory,
> without versions in the the
> pattern so that your file names do not change too
> often, and update
> .classpath manually only when a dependency is
> added/removed. Now I prefer
> using IvyDE, but this solution has the advantage to
> work in all IDEs.

Thanks for your take on this!

-Matt

> 
> - Xavier
> 
> Thanks,
> > Matt
> >
> >
> >
> >
> >
>
____________________________________________________________________________________
> > Be a PS3 game guru.
> > Get your game face on with the latest PS3 news and
> previews at Yahoo!
> > Games.
> >
> http://videogames.yahoo.com/platform?platform=120121
> >
> 



 
____________________________________________________________________________________
Sucker-punch spam with award-winning protection. 
Try the free Yahoo! Mail Beta.
http://advision.webevents.yahoo.com/mailbeta/features_spam.html

Re: Ivy projects; day-to-day usage in IDEs

Posted by Xavier Hanin <xa...@gmail.com>.
On 3/5/07, Matt Benson <gu...@yahoo.com> wrote:
>
> I am just getting my feet wet in Ivy and haven't yet
> managed to work this out for myself:  In e.g. Eclipse
> (but I'd like to know about IDEA and other IDEs as
> well), what is the generally accepted "right way" of
> working with Ivy?  Using Ant builds exclusively, for
> starters?  What about latest-integration builds +
> classpaths + code completion, etc.?  Hopefully this
> gives you an idea of the kinds of issues and pitfalls
> I am thinking of, and will allow some of you to
> explain how they tend to work (or not) with Ivy in an
> IDE.


I guess you can get several different opinions on this subject. Mine is that
I prefer to use a plugin for the IDE (IvyDE for Eclipse, but there are also
another at least for IDEA). One big advantage is that you have code
completion while editing ivy.xml. Another is that IMO it's the easier way to
keep your classpath in sync with Ivy. And when the plugin improves, you can
even benefit from interesting things like the detection of your open
projects to inject project dependencies on the fly (not yet commited on
IvyDE, but there's a patch available).
I know others prefer to generate/synchronize IDE metainformation (.classpath
for eclipse), which make your development environment less dependent on Ivy,
which can be a good thing for several reasons (IDE stability, habits, ...).
Last it's possible to work with absolutely no tool for the IDE, I worked
like that at least during my first year with Ivy, and it wasn't so bad: use
retrieve to put your libs in a lib directory, without versions in the the
pattern so that your file names do not change too often, and update
.classpath manually only when a dependency is added/removed. Now I prefer
using IvyDE, but this solution has the advantage to work in all IDEs.

- Xavier

Thanks,
> Matt
>
>
>
>
> ____________________________________________________________________________________
> Be a PS3 game guru.
> Get your game face on with the latest PS3 news and previews at Yahoo!
> Games.
> http://videogames.yahoo.com/platform?platform=120121
>

Re: Ivy projects; day-to-day usage in IDEs

Posted by Stephane Bailliez <sb...@gmail.com>.
Hey Matt,

Matt Benson wrote:
> I am just getting my feet wet in Ivy and haven't yet
> managed to work this out for myself:  In e.g. Eclipse
> (but I'd like to know about IDEA and other IDEs as
> well), what is the generally accepted "right way" of
> working with Ivy?  Using Ant builds exclusively, for
> starters?  What about latest-integration builds +
> classpaths + code completion, etc.?  Hopefully this
> gives you an idea of the kinds of issues and pitfalls
> I am thinking of, and will allow some of you to
> explain how they tend to work (or not) with Ivy in an
> IDE.
>   
I use a retrieve to actually retrieve all components 
(jars/sources/javadocs) in lib directory and do a:
I'm actually only doing a retrieve only if the dependencies have changed 
after a resolve
The pattern I use is: ivy.retrieve.pattern = 
${ivy.lib.dir}/[type]s/[organisation].[artifact]-[revision].[ext]

The retrieve serves 2 purposes, mapping any kind of IDEs to it and 
visual checking of the resolution.

I'm mapping my ide (IDEA) to that. I'm doing it most of the time 
manually even though I could generate the project file.
I don't want my dependencies to change every time, so even though I'm 
for some (bad) reasons on a latest.integration, I'm fairly conservative 
in my workspace. Having dependencies changing while you're working on 
things is never a good idea.

When I will have time I will actually try to go over the build and make 
it use the origin, because in a large build system there is just a silly 
amount of copying happening to the cache and projects and we're talking 
about 200MB of jars flying around.

As a matter of fact it also depends how you want to define your libraries.
For example in IDEA, you could very well define all your third party 
libs into the 'library' and use it from their in your projects and 
modules (which would mean working by reference rather than duplication) 
etc...and where a module defines a latest, it would be mapped within  
the IDEA module itself. Probably a good Ivy plugin within IDEA would 
make the difference, I have tried one, but found it to be rather 
cryptic. Maybe the jetbrains guys will do it one day considering they 
are apparently integrating it with Team City. :)


-- stephane