You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ant.apache.org by Serge K <ff...@gmail.com> on 2010/04/07 17:19:01 UTC

Getting Ivy dependency tree from Ant target

I’m trying to migrate from proprietary build system to Ant/Ivy.

The application has over 600 modules to build and package.
Most of the modules have dependencies on other modules
i.e. build of one top level module should invoke build and packaging a  
tree of dependent modules.

Question:
Is there a way to retrieve dependencies declared in Ivy config files  
from Ant target during the build so that Ant can rebuild dependent  
modules?

To my understanding Ivy just fetches prebuilt versions of modules and  
can not be used from Ant
like
<target name="module.aaa"  
depends="get_dependency.bbb,dependency.bbb_from_ivy_configs">
   <javac...>
</target>

I don’t want to have duplicate declarations of the same dependencies  
in Ivy for packaging
and then in “depends” attribute of Ant targets for build.

I went over Ivy API and source code. No help.

It seems I’d need to code external component that parses Ivy modules,
loads dependency tree and invokes Ant to build each dependent module.
Then use Ivy to fetch prebuilt modules and package them.

Any suggestions?

Thank you.
Serge K.
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@ant.apache.org
For additional commands, e-mail: dev-help@ant.apache.org


Re: Getting Ivy dependency tree from Ant target

Posted by Mitch Gitman <mg...@gmail.com>.
Serge:
I think this is the sort of question you'd best ask on the ivy-user mailing
list:
ivy-user@ant.apache.org

My understanding is that this particular list is for internal Ant
development.

That said, let me give a quick answer to your question. Suppose you have
some projects:
acmewebapp depends on -->
acmeapplication depends on -->
acmedomain

You want acmewebapp to use the latest changes in acmeapplication and
acmedomain. The standard way to accomplish this is to publish your latest
changes in the latter projects to an Ivy repository using the ivy:publish
Ant task. Then depending on how you've configured the caching for Ivy, your
build for acmewebapp--using the ivy:resolve task--will pick up those latest
changes.

There's also an ivy:buildlist Ant task which, with certain limitations, will
figure out the correct dependency chain in a suite of projects and build an
entire stack in order. But typically, instead of using buildlist, you'll be
relying on your CI server to pick up changes and do publishes to a shared
repository. Or if you're just working locally, you'll be publishing locally
yourself or relying on the IDE, for example Eclipse with the IvyDE plugin.

2010/4/7 Serge K <ff...@gmail.com>

> I’m trying to migrate from proprietary build system to Ant/Ivy.
>
> The application has over 600 modules to build and package.
> Most of the modules have dependencies on other modules
> i.e. build of one top level module should invoke build and packaging a tree
> of dependent modules.
>
> Question:
> Is there a way to retrieve dependencies declared in Ivy config files from
> Ant target during the build so that Ant can rebuild dependent modules?
>
> To my understanding Ivy just fetches prebuilt versions of modules and can
> not be used from Ant
> like
> <target name="module.aaa"
> depends="get_dependency.bbb,dependency.bbb_from_ivy_configs">
>  <javac...>
> </target>
>
> I don’t want to have duplicate declarations of the same dependencies in Ivy
> for packaging
> and then in “depends” attribute of Ant targets for build.
>
> I went over Ivy API and source code. No help.
>
> It seems I’d need to code external component that parses Ivy modules,
> loads dependency tree and invokes Ant to build each dependent module.
> Then use Ivy to fetch prebuilt modules and package them.
>
> Any suggestions?
>
> Thank you.
> Serge K.
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@ant.apache.org
> For additional commands, e-mail: dev-help@ant.apache.org
>
>