Maven транзитивно тянет в версию 16 guava, хотя у меня есть <dependencyManagement> раздел, который указывает версию 18.
Краткое резюме:
-
gwizard-example
зависит отgwizard-config
-
gwizard-config
имеет родительский pom,gwizard-parent
-
gwizard-parent
имеет <dependencyManagement> который указывает версию 18 guava
К счастью, это проект с открытым исходным кодом, так что вы можете напрямую увидеть poms: gwizard-parent, gwizard-config, gwizard-example. Однако здесь важный бит в gwizard-parent
:
<properties>
<guava.version>18.0</guava.version>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>${guava.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
... и зависимость от излишеств, объявленная в примере gwizard:
<properties>
<gwizard.version>0.5</gwizard.version>
</properties>
<dependencies>
<dependency>
<groupId>org.gwizard</groupId>
<artifactId>gwizard-config</artifactId>
<version>${gwizard.version}</version>
</dependency>
</dependencies>
Дерево зависимостей для gwizard-config правильно отображает guava 18:
[INFO] --- maven-dependency-plugin:2.8:tree (default-cli) @ gwizard-config ---
[INFO] org.gwizard:gwizard-config:jar:0.5
[INFO] +- com.google.inject:guice:jar:4.0-beta5:compile
[INFO] | \- com.google.guava:guava:jar:18.0:compile
Однако дерево зависимостей для примера gwizard показывает guava 16 (что вызывает проблемы):
[INFO] --- maven-dependency-plugin:2.8:tree (default-cli) @ gwizard-example ---
[INFO] org.gwizard:gwizard-example:jar:1.0-SNAPSHOT
[INFO] +- org.gwizard:gwizard-config:jar:0.5:compile
[INFO] | +- com.google.inject:guice:jar:4.0-beta5:compile
[INFO] | | \- com.google.guava:guava:jar:16.0.1:compile
Это использование Maven v3.2.5. Я сбит с толку. Помощь?
Возможно, связано: зависимость управления в родительском доме игнорируется
ОБНОВЛЕНИЕ. Помпы, связанные с github, меняются; добавляя зависимость от gwizard-services
(которая прямо объявляет depa guava) в gwizard-example
"исправлена" проблема. Здесь все еще есть какое-то плохое основное поведение.
UPDATE: создан этот вопрос JIRA