Рассматривали ли вы использование номеров динамических ревизий в ваших файлах ivy?
<dependency org="myorg" name="myname1" revision="latest.release"/>
<dependency org="myorg" name="myname2" revision="latest.integration"/>
Ivy будет умно разрешать эти зависимости в файле ivy.xml, который публикуется в репозиториях ivy.
Использование ivy для создания номера сборки
номер сборки - очень умная задача, которая генерирует следующее число в последовательности на основе уже опубликованных версий.
Управление порядком сборки
Еще один мультимодульный совет ivy - использовать задачу buildlist для управления порядком сборки ваших модулей.Он работает на основе взаимозависимостей, объявленных в файлах ivy каждого подмодуля.Это гарантирует, что ревизии latest.release и latest.integration найдут ожидаемую ревизию.
Разрешение динамических ревизий
Как ясказал, что обычно это делается автоматически, но иногда вам нужно будет увидеть реальные используемые версии, например, при создании POM-файла Maven (при публикации в репозиторий Maven).
В следующих примерах используется плющЗадачи поставка и makepom для создания POM Maven с расширенными динамическими ревизиями.
<target name="generate-pom">
<ivy:deliver deliverpattern="${build.dir}/ivy.xml" pubrevision="${publish.revision}" status="${publish.status}"/>
<ivy:makepom ivyfile="${build.dir}/ivy.xml" pomfile="${build.dir}/${ivy.module}.pom"/>
</target>
<target name="publish" depends="build,generate-pom">
<ivy:publish resolver="${publish.resolver}" pubrevision="${publish.revision}" overwrite="true" publishivy="false" >
<artifacts pattern="${build.dir}/[artifact](-[classifier]).[ext]"/>
</ivy:publish>
</target>