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 Dave <da...@gmail.com> on 2008/06/12 17:03:52 UTC

Any way to have Ivy create an Ant path?

Hey all,
I can't find anything about this in the documentation so I thought I'd ask
here.
Our current build setup uses tools like PMD, Findbugs, etc.
Take for example PMD.
It has dependencies on a couple of other libraries.
Normally the libraries required for PMD are in the same directory as the PMD
jar, which allows you to created a classpath for PMD with something like the
following:

<path id="pmd.classpath">
<fileset dir="${pmd.lib.dir}" includes="*.jar"/>
</path>
<taskdef name="pmd" classname="net.sourceforge.pmd.ant.PMDTask"
classpathref="pmd.classpath"/>

That's the current way of doing things. In the Ivy world, the extenal libs
that PMD depends on would and should not be stored in the same directory as
PMD.
This means you have to craft a more complex classpath for PMD, and repeat
for each version of PMD, if each new version of PMD uses newer third party
libraries.

A solution to this problem would be to have Ivy generate the classpath for
the user. The user could pass in the name,version,and configuration it needs
a classpath for, and ivy can generate an Ant path with a user-specified path
id.
Something like:

<ivy:path org="pmd "module="pmd" version="4.2.2" conf="default"
pathid="pmd.classpath"/>
or
<ivy:path file="pmd/pmd/4.2.2/ivy.xml" conf="default"
pathid="pmd.classpath"/>

allowing me to then use:
<taskdef name="pmd" classname="net.sourceforge.pmd.ant.PMDTask"
classpathref="pmd.classpath"/>


Is there anything like this in Ivy now? If not does anyone else think it's a
good idea?

Any thoughts/comments appreciated :-)

-- 
There are 10 types of people in the world.
Those who understand binary and those who do not.

Re: Any way to have Ivy create an Ant path?

Posted by Dave <da...@gmail.com>.
Very nice. That should work. Thanks for your swift response.
Ruel, I hope you read this! It'll save you some work :-)

On Thu, Jun 12, 2008 at 4:09 PM, Fernandes, Gerard <
gerard.fernandes@lehman.com> wrote:

>
> There's exactly that in Ivy - has been in there for a long time
> (probably since the very beginning).
>
> Look at the documentation at
> http://ant.apache.org/ivy/history/latest-milestone/use/cachepath.html
>
> Gerard
>
> -----Original Message-----
> From: Dave [mailto:davidcorley@gmail.com]
> Sent: 12 June 2008 16:04
> To: ivy-user@ant.apache.org
> Subject: Any way to have Ivy create an Ant path?
>
> Hey all,
> I can't find anything about this in the documentation so I thought I'd
> ask here.
> Our current build setup uses tools like PMD, Findbugs, etc.
> Take for example PMD.
> It has dependencies on a couple of other libraries.
> Normally the libraries required for PMD are in the same directory as the
> PMD jar, which allows you to created a classpath for PMD with something
> like the
> following:
>
> <path id="pmd.classpath">
> <fileset dir="${pmd.lib.dir}" includes="*.jar"/> </path> <taskdef
> name="pmd" classname="net.sourceforge.pmd.ant.PMDTask"
> classpathref="pmd.classpath"/>
>
> That's the current way of doing things. In the Ivy world, the extenal
> libs that PMD depends on would and should not be stored in the same
> directory as PMD.
> This means you have to craft a more complex classpath for PMD, and
> repeat for each version of PMD, if each new version of PMD uses newer
> third party libraries.
>
> A solution to this problem would be to have Ivy generate the classpath
> for the user. The user could pass in the name,version,and configuration
> it needs a classpath for, and ivy can generate an Ant path with a
> user-specified path id.
> Something like:
>
> <ivy:path org="pmd "module="pmd" version="4.2.2" conf="default"
> pathid="pmd.classpath"/>
> or
> <ivy:path file="pmd/pmd/4.2.2/ivy.xml" conf="default"
> pathid="pmd.classpath"/>
>
> allowing me to then use:
> <taskdef name="pmd" classname="net.sourceforge.pmd.ant.PMDTask"
> classpathref="pmd.classpath"/>
>
>
> Is there anything like this in Ivy now? If not does anyone else think
> it's a good idea?
>
> Any thoughts/comments appreciated :-)
>
> --
> There are 10 types of people in the world.
> Those who understand binary and those who do not.
> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
> - - - - - -
>
> This message is intended only for the personal and confidential use of the
> designated recipient(s) named above.  If you are not the intended recipient
> of this message you are hereby notified that any review, dissemination,
> distribution or copying of this message is strictly prohibited.  This
> communication is for information purposes only and should not be regarded as
> an offer to sell or as a solicitation of an offer to buy any financial
> product, an official confirmation of any transaction, or as an official
> statement of Lehman Brothers.  Email transmission cannot be guaranteed to be
> secure or error-free.  Therefore, we do not represent that this information
> is complete or accurate and it should not be relied upon as such.  All
> information is subject to change without notice.
>
>
>
>


-- 
There are 10 types of people in the world.
Those who understand binary and those who do not.

RE: Any way to have Ivy create an Ant path?

Posted by "Fernandes, Gerard" <ge...@lehman.com>.
There's exactly that in Ivy - has been in there for a long time
(probably since the very beginning).

Look at the documentation at
http://ant.apache.org/ivy/history/latest-milestone/use/cachepath.html

Gerard 

-----Original Message-----
From: Dave [mailto:davidcorley@gmail.com] 
Sent: 12 June 2008 16:04
To: ivy-user@ant.apache.org
Subject: Any way to have Ivy create an Ant path?

Hey all,
I can't find anything about this in the documentation so I thought I'd
ask here.
Our current build setup uses tools like PMD, Findbugs, etc.
Take for example PMD.
It has dependencies on a couple of other libraries.
Normally the libraries required for PMD are in the same directory as the
PMD jar, which allows you to created a classpath for PMD with something
like the
following:

<path id="pmd.classpath">
<fileset dir="${pmd.lib.dir}" includes="*.jar"/> </path> <taskdef
name="pmd" classname="net.sourceforge.pmd.ant.PMDTask"
classpathref="pmd.classpath"/>

That's the current way of doing things. In the Ivy world, the extenal
libs that PMD depends on would and should not be stored in the same
directory as PMD.
This means you have to craft a more complex classpath for PMD, and
repeat for each version of PMD, if each new version of PMD uses newer
third party libraries.

A solution to this problem would be to have Ivy generate the classpath
for the user. The user could pass in the name,version,and configuration
it needs a classpath for, and ivy can generate an Ant path with a
user-specified path id.
Something like:

<ivy:path org="pmd "module="pmd" version="4.2.2" conf="default"
pathid="pmd.classpath"/>
or
<ivy:path file="pmd/pmd/4.2.2/ivy.xml" conf="default"
pathid="pmd.classpath"/>

allowing me to then use:
<taskdef name="pmd" classname="net.sourceforge.pmd.ant.PMDTask"
classpathref="pmd.classpath"/>


Is there anything like this in Ivy now? If not does anyone else think
it's a good idea?

Any thoughts/comments appreciated :-)

--
There are 10 types of people in the world.
Those who understand binary and those who do not.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

This message is intended only for the personal and confidential use of the designated recipient(s) named above.  If you are not the intended recipient of this message you are hereby notified that any review, dissemination, distribution or copying of this message is strictly prohibited.  This communication is for information purposes only and should not be regarded as an offer to sell or as a solicitation of an offer to buy any financial product, an official confirmation of any transaction, or as an official statement of Lehman Brothers.  Email transmission cannot be guaranteed to be secure or error-free.  Therefore, we do not represent that this information is complete or accurate and it should not be relied upon as such.  All information is subject to change without notice.




RE: Any way to have Ivy create an Ant path?

Posted by "Loehr, Ruel" <rl...@pointserve.com>.
I'll take a stab

-----Original Message-----
From: Dave [mailto:davidcorley@gmail.com]
Sent: Thursday, June 12, 2008 10:04 AM
To: ivy-user@ant.apache.org
Subject: Any way to have Ivy create an Ant path?

Hey all,
I can't find anything about this in the documentation so I thought I'd ask
here.
Our current build setup uses tools like PMD, Findbugs, etc.
Take for example PMD.
It has dependencies on a couple of other libraries.
Normally the libraries required for PMD are in the same directory as the PMD
jar, which allows you to created a classpath for PMD with something like the
following:

<path id="pmd.classpath">
<fileset dir="${pmd.lib.dir}" includes="*.jar"/>
</path>
<taskdef name="pmd" classname="net.sourceforge.pmd.ant.PMDTask"
classpathref="pmd.classpath"/>

That's the current way of doing things. In the Ivy world, the extenal libs
that PMD depends on would and should not be stored in the same directory as
PMD.
This means you have to craft a more complex classpath for PMD, and repeat
for each version of PMD, if each new version of PMD uses newer third party
libraries.

A solution to this problem would be to have Ivy generate the classpath for
the user. The user could pass in the name,version,and configuration it needs
a classpath for, and ivy can generate an Ant path with a user-specified path
id.
Something like:

<ivy:path org="pmd "module="pmd" version="4.2.2" conf="default"
pathid="pmd.classpath"/>
or
<ivy:path file="pmd/pmd/4.2.2/ivy.xml" conf="default"
pathid="pmd.classpath"/>

allowing me to then use:
<taskdef name="pmd" classname="net.sourceforge.pmd.ant.PMDTask"
classpathref="pmd.classpath"/>


Is there anything like this in Ivy now? If not does anyone else think it's a
good idea?

Any thoughts/comments appreciated :-)

--
There are 10 types of people in the world.
Those who understand binary and those who do not.