Переопределение версии зависимостей Ivy

Я использую Apache Ivy для обработки зависимостей библиотек. В моей компании у нас есть «основной» проект, который периодически выпускается/версируется. Затем у нас есть много «клиентских» проектов, которые предназначены для конкретного клиента. В каждом проекте клиента используется определенная версия основного проекта, которую мы храним в файле ivy.xml проекта клиента. Все хорошо.

Иногда кто-то захочет изменить ядро ​​​​локально и протестировать изменение в конкретном проекте. В этом случае они создадут ядро ​​​​и опубликуют его в локальном репозитории Ivy, а не в общем.

Чтобы получить эту локально собранную версию, нужно ли мне убедиться, что локально собранная версия или ядро ​​публикуются с точно такой же версией x.y.z, на которую указывает проект в ivy.xml? Или есть какой-то другой подход? Я бы не хотел, чтобы люди возились с ivy.xml (например, меняли его на core -> last.integration), поскольку это изменение, которое случайно регистрируется в системе управления версиями. Может быть, есть какой-то способ переопределить ревизию зависимости в ivy.xml, возможно, в локальном файле свойств?


person Mike Q    schedule 12.09.2010    source источник


Ответы (1)


При разработке я всегда указываю свои внутренние зависимости проекта как «latest.integration» или «latest.release». Это решает проблему отсутствия возни с файлами, зарегистрированными в системе управления версиями.

Хорошая новость заключается в том, что задача ivy публикации разрешать динамические номера ревизий для вас. Проверьте файл ivy.xml, опубликованный в вашем репозитории, и вы увидите, что последние номера версий (на момент публикации) были заменены автоматически.

Задача ivy доставить предназначена для вы в своей сборке. Я использую его, когда мне нужен разрешенный файл ivy для создания файла Maven POM для моего модуля.

Например:

<ivy:deliver pubrevision="??" status="release" deliverpattern="${build.dir}/ivy.xml"/>
<ivy:makepom ivyfile="${build.dir}/ivy.xml" pomfile="${build.dir}/pom.xml"/>

Мой последний совет: используйте номер сборки, когда вам нужно знать номер следующей версии в последовательности. Ivy сделает это на основе того, что уже опубликовано в репозитории ivy (намного более гибко, чем стандартная задача номера сборки ANT, которая опирается на файлы свойств).

Поэтому продолжайте использовать динамические версии и позвольте ivy определить фактические номера версий в конкретном выпуске.

person Mark O'Connor    schedule 13.09.2010