Версия зависимости Maven: автоматическое обновление версий зависимостей

maven
Версия зависимости Maven: автоматическое обновление версий зависимостей

введенный доМеханизм настройки зависимостей Maven.

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

Например, проект A зависит от двух версий D через транзитивные зависимости:

A -> B -> C -> ( D 2.0 ) ,

A -> E -> ( D 1.0 )

Тогда окончательная версия D, от которой зависит A, будет 1.0, потому что 1.0 соответствует меньшему количеству уровней, то есть ближе.

В дополнение к нашим обычно используемым<version>1.1.0</version>, при объявлении версии зависимости можно гибко настроить номер версии через выражения.

Например, настройте пакет jar x<version>Теги поддерживают следующий синтаксис:

1.0: 推荐依赖版本,此版本号可能会被覆盖。
[1.0]: 强制依赖此版本。

Вы также можете контролировать диапазон версий зависимостей:

(,1.0]: x <= 1.0
[1.2,1.3]: 1.2 <= x <= 1.3
[1.0,2.0): 1.0 <= x < 2.0
[1.5,): x >= 1.5

Также можно объявить несколько диапазонов версий одновременно, если они разделены запятыми:

(,1.0],[1.2,): x <= 1.0 或者 x >= 1.2 

Если вы не хотите зависеть от определенной версии, вы можете объявить ее как:

(,1.1),(1.1,)

Например, если вы хотите полагаться на последнюю стабильную версию Apache commons-math3 и не хотите вручную обновлять pom.xml каждый раз, когда появляется новая версия, вы можете использовать следующее:<version>Конфигурация:

<dependency>
	<groupId>org.apache.commons</groupId>
	<artifactId>commons-math3</artifactId>
	<version>[3.+,)</version>
</dependency>

Скомпилируйте проект, и вы увидите, что версия зависимостей в проекте — последняя официальная версия (04.03.2019):3.6.1.

Конечно, это рискованно, так как автоматические обновления могут внести неизвестные изменения.

Если только вы не доверяете издателю этого проекта и считаете, что новые версии, выпущенные им, обратно совместимы, чтобы гарантировать отсутствие проблем после автоматического обновления до последней версии.


Подробное использование см. в официальной документации Maven.Dependency Version Requirement Specification