введенный доМеханизм настройки зависимостей 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