Разрешить порядок версий зависимостей Ivy

В моем репозитории артефактов сборки у меня есть сборки как из ветки, так и из магистрали.

Я проверил, что моя решимость работает с веткой и захватывает правильный элемент.

Но это не работает, если зависимость также находится в магистральном репозитории. В этом случае он захватывает зависимость из ствола, а не из моей ветки.

Мне нужно решить, чтобы вытащить зависимость из репозитория магистрали, если ее нет в ветке, но если зависимость находится в ветке, мне нужна версия ветки, а не версия магистрали.

Как я могу сделать это в Айви? Я бы предпочел просто найти версию ветки, а затем перестать ее искать. Таким образом, если он отсутствует в ветке, он «проваливается» в основную версию.

Возможно ли, что способ, которым я использую номера сборки, неверен для этой ситуации?

Вот пример:

trunkbuild - версия = "1.0.4" ветка - версия = "1.0-SNAPSHOT"

Должны ли мои ветки быть «1.1-SNAPSHOT» вместо этого?

Код в моих ветках всегда должен быть версией ВПЕРЕДИ, а не позади ствола.


person DonBecker    schedule 15.12.2011    source источник


Ответы (1)


Я думаю, что динамические версии - это то, что вы ищете:

<dependency org="mygroup" name="myartifact" revision="latest.release"/>
<dependency org="mygroup" name="myartifact" revision="latest.integration"/>

Репозитории Maven поддерживают два основных типа репозиториев:

  • Выпуск
  • Снимок

В репозиторий Release публикуются только артефакты, созданные в моей основной ветке.

Таким образом, следующей настройки преобразователя ivy должно быть достаточно, чтобы заставить его работать, с «latest.integration», разрешающим артефакты в репозитории моментальных снимков.

<ivysettings>
    <settings defaultResolver="default"/>
    <resolvers>
        <chain name="default">
            <ibiblio name="nexus-central" root="http://myhost/nexus/content/repositories/central" m2compatible="true"/>
            <ibiblio name="nexus-releases" root="http://myhost/nexus/content/repositories/releases" m2compatible="true"/>
            <ibiblio name="nexus-snapshots" root="http://myhost/nexus/content/repositories/snapshots" m2compatible="true"/>
        </chain>
    </resolvers>
</ivysettings>

Примечание.

Вы можете создать группу репозиториев в своем менеджере репозиториев и упростить настройку ivy до одного URL-адреса.

person Mark O'Connor    schedule 15.12.2011