Есть ли способ указать зависимость Ivy с помощью динамической ревизии, но с ограничением статуса? - PullRequest
2 голосов
/ 08 апреля 2011

Могу ли я объявить зависимость с помощью динамической ревизии, ограничивая при этом статус полученного артефакта?Например, я хочу определить диапазон версий, что-то вроде "[1.0,1.1 [", но я не хочу артефактов со статусом интеграции, только этап или выпуск.Поэтому я хочу версию 1.0.5, если она имеет статус «релиз», даже если есть версия 1.0.6 со статусом «интеграция».

Я знаю о последних. status , но это не совсем то, что я хочу: мне нужно определить верхний и нижний предел для ревизии.

Ответы [ 2 ]

2 голосов
/ 28 сентября 2011

Спасибо, что задали этот вопрос, rsteele.У меня был похожий вопрос, и вот решение, которое я использую.Это работает, если ваш диапазон соответствует подревизиям:

Самый простой способ представить это с примером:

<dependency org="com.acme" name="wigdet" branch="1" rev="latest.milestone">
  • 1 / ivy-1.0.xml: status =«интеграция»
  • 1 / ivy-1.1.xml: status = «этап»
  • 1 / ivy-1.2.xml: status = «интеграция»

Зависимость разрешается до 1.1.

Это работает для меня, но я не совсем доволен этим, и я надеюсь, что кто-то может указать на лучший путь или пробить дыры в нем:

  • ответвлениекажется уместным, потому что com.acme на самом деле имеет ветку в управлении версиями, которая соответствует версии 1.
  • с другой стороны ветка кажется неуместной, потому что «1» является частью ревизии, и, возможно, ветвь более полезна в другихпути.
  • это не решает более общую проблему, поставленную rsteele.
2 голосов
/ 26 июля 2011

Возможно, решение состоит в том, чтобы определить свой собственный сопоставитель версий, см. http://ant.apache.org/ivy/history/latest-milestone/settings/version-matchers.html

Я использовал его (в ivysettings.xml), чтобы сделать это: </p> <pre><code><!-- Matcher for build with given build number It assumes the version number is on the form #.#__.# where the lastet '.#' is the build number. --> <version-matchers usedefaults="true"> <pattern-vm> <match revision="build_number" pattern="[\d\.]+\.${buildnumber}" args="buildnumber" matcher="regexp"/> </pattern-vm> </version-matchers>

Вы можете вызвать его в скрипте сборки, установив атрибут ревизии, например 'revision = "build_number ($ {prop.buildnumber})"'

...