2015-06-09 3 views
1

У меня есть родительский POM с руководством зависимости, как это:

<dependencyManagement> 
    <dependencies> 
     <dependency> 
     <groupId>com.group.id</groupId> 
     <artifactId>art1</artifactId> 
     <version>1.0</version> 
     </dependency> 
     <dependency> 
     <groupId>com.group.id</groupId> 
     <artifactId>art1</artifactId> 
     <version>1.0</version> 
     </dependency> 
</dependencyManagement> 

Артефакты art1 и ART2 подмодулями из того же модуля, и они унаследуют от родительский pom, где управление зависимостями.

Зависимости от Art1 выглядит следующим образом:

<dependency> 
    <groupId>com.group.id</groupId> 
    <artifactId>art2</artifactId> 
    <version>${project.version}</version> 
</dependency> 

Сейчас я учил, что если версия проекта Art1 была 0,5 версия ART2 в зависимости от Art1 будет 0,5 Но, кажется, что dependencyManagement переопределить $ {project.version}

Можете ли вы сказать мне, если я прав?

ответ

2

Да, вы правы. Указанные версии в управлении зависимостями от родительского pom будут иметь «приоритет» для транзитивных зависимостей. Это одна из целей управления зависимостями: пользователь может «принудительно» изменить версии зависимостей в одном месте.

+0

Вам может понравиться какая-либо документация об этой цели? Тогда я могу принять ваш ответ. Спасибо! – bryce

+1

https://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html – grozandrei

+0

Как наилучшая практика, вы должны указать все свои версии зависимостей в разделе управления родительским pom, зависимостью. Изменить версию будет гораздо проще, так как вы знаете, что все версии зависимостей объявлены в одном месте. – grozandrei

Смежные вопросы