Как заставить maven использовать последнюю версию версии в пределах диапазона версий? - программирование

Как заставить 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 в пределах диапазона версий?

4b9b3361

Ответ 1

Глядя на документацию для Выбор диапазона Maven, я замечаю комментарий:

Разрешение диапазонов зависимостей не должно разрешаться для моментального снимка (версия разработки), если он не включен как явная граница.

Если версия артефакта заканчивается на -SNAPSHOT, Maven будет считать ее действительной версией. Насколько я знаю, -alpha1 не имеет особого значения для Maven. Это просто еще один случайный классификатор.

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

Ответ 2

Maven 3 поддерживает управление версиями для альфа, бета и моментальных снимков со следующим порядком alpha < beta < snapshot