Как заставить maven использовать последнюю версию версии в пределах диапазона версий?
В моем проекте maven я использую зависимости вроде:
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>[4.2.2, 5.0)</version>
</dependency>
Поскольку следующая основная версия (5.0) может изменить API, я хочу, чтобы мой проект использовал последнюю версию стабильной, доступную для ветки 4.x.
Это утреннее исследование ошибок показало мне, что это выражение [4.2.2, 5.0] позволяет использовать любую версию. В моем случае: 4.3-alpha1.
Как заставить maven использовать версию thelatest в пределах диапазона версий?
Ответы
Ответ 1
Глядя на документацию для Выбор диапазона Maven, я замечаю комментарий:
Разрешение диапазонов зависимостей не должно разрешаться для моментального снимка (версия разработки), если он не включен как явная граница.
Если версия артефакта заканчивается на -SNAPSHOT
, Maven будет считать ее действительной версией. Насколько я знаю, -alpha1
не имеет особого значения для Maven. Это просто еще один случайный классификатор.
Я бы настоятельно рекомендовал вам отказаться от диапазона версии, во всяком случае. Предсказуемые сборки должны быть целью любого стабильного проекта и диапазонов версий.
Ответ 2
Maven 3 поддерживает управление версиями для альфа, бета и моментальных снимков
со следующим порядком
alpha < beta < snapshot