マルチモジュールプロジェクトについては、ドキュメントで説明されています。
http://ant.apache.org/ivy/history/latest-milestone/tutorial/multiproject.html
ソースコードはsubversionで利用できます。
http://svn.apache.org/viewvc/ant/ivy/core/trunk/src/example/multi-project/
それがどのように機能するかの簡略化された要約:
ラッパービルド
個々のモジュールビルドを正しい順序で呼び出します。モジュールAがモジュールBに依存している場合、Bが最初に構築されます。
<project xmlns:ivy="antlib:org.apache.ivy.ant" name="build-all" default="build">
<!--
==========================================================================
Use the ivy buildlist task to create an ordered list of sub-project builds
==========================================================================
-->
<target name="build-list">
<ivy:buildlist reference="build-path">
<fileset dir="." includes="modules/**/build.xml"/>
</ivy:buildlist>
</target>
<!--
==============================
Invoke targets in sub-projects
==============================
-->
<target name="build" depends="build-list" description="Invoke build target on sub-projects">
<subant target="build" buildpathref="build-path" />
</target>
</project>
詳細については、ビルドリストのドキュメントを参照してください。
モジュールビルド
各モジュールは、ビルドの開始時に依存関係をダウンロードします
<target name="init">
<ivy:settings file="../../ivysettings.xml"/>
<ivy:resolve/>
</target>
最後に、ビルドされたアーティファクトを公開します。
<target name="publish" depends="build" description="Publish module artifacts to the respository">
<ivy:publish resolver="${publish.resolver}" pubrevision="${publish.revision}" overwrite="true">
<artifacts pattern="${build.dir}/[artifact].[ext]"/>
</ivy:publish>
</target>
これらすべてが機能するためには、各モジュールが依存するものと公開するものを宣言する必要があることを忘れないでください
<ivy-module version='2.0'>
<info organisation='com.myorg' module='mymod'/>
<publications>
<artifact name="mymod" type="jar"/>
</publications>
<dependencies>
..
</dependencies>
</ivy-module>