2016-05-18 2 views
1

Мы используем maven для запуска и сборки наших автотестов. Также у нас есть разные проекты с зависимостями от других проектов автотестов.Исключить версию с квалификатором из зависимостей в POM-файле

Например, у нас есть Project1 с версией выпуска (1.2.2). Project2 имеет зависимость от Project1 как: [1.2.0,1.3.0)

Когда кто-то внесет некоторые изменения в Project1, мы разворачиваем 1.2.3-dev, чтобы проверить его на нашей среде. Но в этом случае Project2 будет использовать 1.2.3-dev как последний. Нам нужно, чтобы Project2 не использовал зависимость с квалификатором «dev». Поэтому он должен игнорировать все сборки с помощью «dev».

Есть ли способ сделать это?

Использование SNAPSHOT для нас не является подходящим выбором прямо сейчас.

ответ

0

Вы можете использовать versions:resolve-ranges для принудительного разрешения версий на ваших условиях. Просто запустите это как отдельный шаг сборки непосредственно перед началом основной сборки. Эта цель может быть настроена для исключения определенных артефактов (определенных версий/классификаторов) с использованием -Dexcludes=groupId:artifactId:type:classifier:version.

Лучшая практика заключается в том, чтобы избежать использования диапазонов версий в первую очередь, чтобы получить полностью воспроизводимые сборки. Потому что в противном случае сборка может разрываться просто, например, с новой ошибкой внешней зависимости.