ant-ivy-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Mitch Gitman <>
Subject Re: Use ivy-dependencies to create ant-tasks
Date Thu, 11 Mar 2010 03:48:09 GMT
Maarten, great point. The wonderful thing about Ivy as a framework is that
it is accommodating of so many different philosophies towards using it.

Certainly, there's no absolute justification for having a special Ivy module
as a wrapper around your build dependencies. In some sense, declaring those
dependencies inline, as you show, is just cutting out the middleman.

The thing I like about having a special Ivy module for build dependencies
(whether it's actually published out on the Ivy repo or it's treated as a
reused source build.ivy or the like) is that it makes for a somewhat more
succinct ivy:resolve in your build script and, more important, it separates
the specifics of your build dependencies, in particular the version, from
your build scripts. In other words, your build Ivy module provides an
abstraction layer. Plus, it's helpful for a team to know there's one place
to go, a mediator of sorts, where they can look up all the build
dependencies, with versions, that the team's suite of projects is using.

To be fair (for Marc's sake), someone should only use the build Ivy module
approach for the potential advantages it provides over establishing build
dependencies inline, not because one is not aware of the latter.

On Wed, Mar 10, 2010 at 2:13 PM, Maarten Coene <>wrote:

> It's not required to create an ivy.xml for you build-dependencies, you can
> resolve them inline in your build.xml.
> The build.xml of Ivy uses this approach, for instance to load the emma
> taskdef:
>    <target name="emma" depends="jar" unless="skip.test">
>        <ivy:cachepath organisation="emma" module="emma" revision="2.0.5312"
>                       inline="true" conf="default" pathid="emma.classpath"
>                       log="download-only" />
>        <ivy:cachepath organisation="emma" module="emma_ant"
> revision="2.0.5312"
>                       inline="true" conf="default"
> pathid="emma.ant.classpath" transitive="false"
>                       log="download-only" />
>        <taskdef resource="">
>            <classpath refid="emma.classpath" />
>            <classpath refid="emma.ant.classpath" />
>        </taskdef>
>    ...
>    </target>
> Cfr.
> regards,
> Maarten

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