#java #maven #pom.xml
Вопрос:
У меня есть зависимость следующим образом:
<dependency>
<groupId>com.google.http-client</groupId>
<artifactId>google-http-client</artifactId>
<version>[1.19.0,2.0)</version>
</dependency>
Есть ли в maven какая-либо цель, которая помогает мне всегда явно выбирать последнюю версию, т. е. 2.0, из вышеперечисленного диапазона, и использовать ее.
Я использую maven 3.6.
Помощь признательна
Комментарии:
1. Учитывая, что HTTP-клиент Google еще не выпустил версию 2.0 , я полагаю, что это всего лишь пример?
Ответ №1:
Во-первых, ваш диапазон НЕ включает версию 2.0
, потому что это открытый диапазон (чтобы включить версию 2.0
, вам нужно будет написать [1.19.0,2.0]
).
Во-вторых, вы можете разрешить диапазоны версий с помощью плагина versions maven:
https://www.mojohaus.org/versions-maven-plugin/resolve-ranges-mojo.html
Ответ №2:
Я не знаю способа сделать это в vanilla Maven, просто указав шаблон версии.
Для достижения этой цели вы можете использовать плагин versions maven. Это позволяет вам предоставить список зависимостей, которые всегда должны использовать последнюю версию.
Ваш вариант использования более или менее описан в документации.
В качестве альтернативы вы можете рассмотреть возможность использования инструмента более высокого уровня, такого как dependabot. Это позволило бы сделать эту часть вашего процесса CI, а не просто этапом сборки приложения, и организовать такое поведение в других технологиях, которые вы можете использовать в своем проекте.