Вы смотрели на задачу плюща buildlist ?
Вы можете использовать это, чтобы контролировать порядок, в котором собраны ваши 3 модуля. Поскольку каждый модуль собран, он может публиковать данные в локальном репозитории, гарантируя, что jar присутствует во времени для следующего модуля в цепочке.
build.xml
ivysettings.xml
--> module1 --> build.xml
ivy.xml
--> module2 --> build.xml
ivy.xml
--> module3 --> build.xml
ivy.xml
Ваш файл настроек может быть доступен всем проектам. В нем говорится, что созданные вами модули доступны локально, все остальное - из репозитория по умолчанию, доступного для всех пользователей вашего проекта (в данном случае Maven)
<ivysettings>
<settings defaultResolver="maven2"/>
<resolvers>
<ibiblio name="maven2" m2compatible="true"/>
<filesystem name="local">
<ivy pattern="${local.rep.dir}/.."/>
<artifact pattern="${local.rep.dir}/.."/>
</filesystem>
</resolvers>
<modules>
<module organisation="org.me" name="module1" resolver="local"/>
<module organisation="org.me" name="module2" resolver="local"/>
..
</modules>
</ivysettings>
Наконец, когда вы публикуете внешне, вы можете использовать задачу ivy install , чтобы скопировать модули, которые вы уже опубликовали локально, в окончательное местоположение репозитория