Переходная зависимость Maven не обновляется, показывает старую версию - PullRequest
1 голос
/ 03 августа 2020

У меня есть модули, как показано ниже:

root
  daemon
  common
  tests

Теперь daemon и test имеют <dependency>common</dependency>. Я написал их кратко, чтобы понять.

common имеет jaxrs-api версию 2.1.1, раньше это была 2.0.

Построил весь проект, почистил, но по-прежнему daemon и tests показывают более старую версию. Версия common одинакова для всех модулей. Подключаемый модуль Dependency Analyzer в IntelliJ по-прежнему показывает common, имеющий 2.0, а код имеет проблемы с компиляцией из-за несоответствия.

введите описание изображения здесь

Версия каждого модуля поступает из root следующим образом:

<parent>
    <groupId>com.mycompany.domain</groupId>
    <artifactId>app-name</artifactId>
    <version>1.0.10-SNAPSHOT</version>
    <relativePath>..</relativePath>
</parent>

Помимо скриншота выше, ниже приведены единственные записи jax-rs в mvn dependency:tree

[INFO] --- maven-dependency-plugin:2.8:tree (default-cli) @ common ---
[INFO] com.zzz:common:jar:1.0.10-SNAPSHOT
[INFO] +- com.fasterxml.jackson.jaxrs:jackson-jaxrs-json-provider:jar:2.9.8:compile
[INFO] |  +- com.fasterxml.jackson.jaxrs:jackson-jaxrs-base:jar:2.9.8:compile
[INFO] |  \- com.fasterxml.jackson.module:jackson-module-jaxb-annotations:jar:2.9.8:compile
[INFO] |     \- com.fasterxml.jackson.core:jackson-annotations:jar:2.9.0:compile
[INFO] +- javax.ws.rs:javax.ws.rs-api:jar:2.1.1:compile
[INFO] +- org.testng:testng:jar:6.9.6:test



[INFO] --- maven-dependency-plugin:2.8:tree (default-cli) @ daemon ---
[INFO] com.zzz:daemon:jar:1.0.10-SNAPSHOT
[INFO] +- com.zzz:common:jar:1.0.10-SNAPSHOT:compile
[INFO] |  +- com.fasterxml.jackson.jaxrs:jackson-jaxrs-json-provider:jar:2.9.8:compile
[INFO] |  |  +- com.fasterxml.jackson.jaxrs:jackson-jaxrs-base:jar:2.9.8:compile
[INFO] |  |  \- com.fasterxml.jackson.module:jackson-module-jaxb-annotations:jar:2.9.8:compile
[INFO] |  +- javax.ws.rs:javax.ws.rs-api:jar:2.0:compile
[INFO] |  \- com.paypal.usf:vo:jar:1.6.5:compile

См. Журнал зависимостей daemon, в котором есть более старая версия common и 2.0. Я не вижу конфликтов или банок, исходящих от других зависимостей. Я также попытался вручную удалить каталоги target и удалить каталоги внутри .m2, но безрезультатно.

1 Ответ

2 голосов
/ 03 августа 2020

Запустите maven dependency: tree и проверьте, где присутствует интересующая зависимость.

Maven всегда принимает teansitive зависимость, которая доступна на меньшем расстоянии от узла root.

Обратитесь - https://dzone.com/articles/solving-dependency-conflicts-in-maven

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...