Почему maven игнорирует версии скомпилированных транзитивных зависимостей, определенных в тестовой зависимости - PullRequest
0 голосов
/ 03 января 2019

У меня есть следующие тестовые зависимости в проекте maven, где serenity.version установлен на 2.0.30

    <dependency>
        <groupId>net.serenity-bdd</groupId>
        <artifactId>serenity-junit</artifactId>
        <version>${serenity.version}</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>net.serenity-bdd</groupId>
        <artifactId>serenity-screenplay</artifactId>
        <version>${serenity.version}</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>net.serenity-bdd</groupId>
        <artifactId>serenity-screenplay-webdriver</artifactId>
        <version>${serenity.version}</version>
        <scope>test</scope>
    </dependency>

Как вы можете видеть здесь все селеновые зависимости serenity-core-2.0.30 установлены на 3.141.59

Запуск mvn -U dependency:tree -Dincludes=org.seleniumhq.selenium выводит следующее

[INFO] --- maven-dependency-plugin:3.0.2:tree (default-cli) @ core ---
[INFO] <snip>
[INFO] \- net.serenity-bdd:serenity-junit:jar:2.0.30:test
[INFO]    \- net.serenity-bdd:serenity-core:jar:2.0.30:test
[INFO]       +- org.seleniumhq.selenium:selenium-server:jar:3.141.59:test
[INFO]       |  +- org.seleniumhq.selenium:selenium-firefox-driver:jar:3.9.1:test
[INFO]       |  +- org.seleniumhq.selenium:selenium-ie-driver:jar:3.9.1:test
[INFO]       |  \- org.seleniumhq.selenium:jetty-repacked:jar:9.4.12.v20180830:test
[INFO]       +- org.seleniumhq.selenium:selenium-java:jar:3.9.1:test
[INFO]       +- org.seleniumhq.selenium:selenium-api:jar:3.9.1:test
[INFO]       +- org.seleniumhq.selenium:selenium-chrome-driver:jar:3.9.1:test
[INFO]       +- org.seleniumhq.selenium:selenium-edge-driver:jar:3.9.1:test
[INFO]       +- org.seleniumhq.selenium:selenium-remote-driver:jar:3.9.1:test
[INFO]       +- org.seleniumhq.selenium:selenium-safari-driver:jar:3.9.1:test
[INFO]       +- org.seleniumhq.selenium:selenium-opera-driver:jar:3.9.1:test
[INFO]       +- org.seleniumhq.selenium:selenium-support:jar:3.9.1:test
[INFO]       \- org.seleniumhq.selenium:htmlunit-driver:jar:2.29.3:test

Я должен добавить следующие зависимости, чтобы избежать ошибок во время выполнения - почему используется версия 3.9.1 и как этого избежать?

    <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-api</artifactId>
        <version>3.141.59</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-support</artifactId>
        <version>3.141.59</version>
        <scope>test</scope>
    </dependency>

1 Ответ

0 голосов
/ 03 января 2019

Оказывается, что spring-boot-dependencies-2.0.3.RELEASE устанавливает свойство selenium.version в 3.9.1 и перечисляет все, кроме артефакта selenium-server, в его разделе dependencyManagement - установка selenium.version в моем исправленном POM вопрос.

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