Как определить, откуда берется версия в проекте MVN? - PullRequest
0 голосов
/ 18 декабря 2018

Для проекта mvn мы можем использовать dependencymanagement для контроля версий.Но проблема также возникает, как, например, родительский pom проекта:

<parent>
    <groupId>com.XXX</groupId>
    <artifactId>XXX-dependencies</artifactId>
    <version>1.0.0</version>
</parent>

<dependencyManagement>
        <dependency>
            <groupId>com.YYY</groupId>
            <artifactId>YYY-dependencies</artifactId>
            <version>1.1.1</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
</dependencyManagement>

, если есть jar с именем com.AAA:BBB, управляемый как в com.XXX:XXX- зависимостях, так и com.YYY:YYY-dependencies, как мы можемзнаете, какую версию Maven будет использовать в конце концов?Есть ли инструмент, который поможет нам определить?Я попробовал mvn плагин зависимостей, mvn help плагин и анализатор зависимостей в идее, никто не работает.

1 Ответ

0 голосов
/ 18 декабря 2018

Думай по-другому.Я думаю, вам не нужно выяснять, какая версия получает от других зависимостей (транзитивных).Вам просто нужно убедиться, что версия AAA: BBB входит в проект, как и ожидалось.

Просто добавьте com.AAA:BBB (обязательная зависимость) в ваш pom.xml как явную зависимость с требуемой версией.Чтобы он выглядел, как показано ниже, код

<parent>
    <groupId>com.XXX</groupId>
    <artifactId>XXX-dependencies</artifactId>
    <version>1.0.0</version>
</parent>

<dependencyManagement>
        <dependency>
            <groupId>com.YYY</groupId>
            <artifactId>YYY-dependencies</artifactId>
            <version>1.1.1</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
        <dependency>
            <groupId>com.AAA</groupId>
            <artifactId>AAA-dependencies</artifactId>
            <version>BBB</version> <!-- The version you expect -->
            <type>pom or jar whatever</type>
            <scope>import</scope>
        </dependency>
</dependencyManagement>

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

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