Исключение в потоке "Thread-2" java .lang.NoSuchMethodError: kotlin .io.ByteStreamsKt.readBytes (Ljava / io / InputStream;) для тестов PACT - PullRequest
0 голосов
/ 25 мая 2020

Я получаю это kotlin исключение при попытке запустить некоторые тесты PACT с использованием Java и не знаю, как это исправить, пожалуйста.

Здесь ошибка:

Исключение в потоке «Thread-2» java .lang.NoSuchMethodError: kotlin .io.ByteStreamsKt.readBytes (Ljava / io / InputStream;) [B

enter image description here

EDIT

Я обновил свои зависимости PACT, чтобы использовать более свежие версии, и я все еще получаю та же проблема, но только когда у меня есть указанная ниже зависимость как часть ее, и я не уверен, почему.

 <parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.1.3.RELEASE</version>
</parent>

enter image description here

Это мой текущий pom :

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<groupId>com.hmhco</groupId>
<artifactId>update-catalog</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.1.3.RELEASE</version>
</parent>

<properties>
    <rest-assured.version>3.0.0</rest-assured.version>
    <json-schema-validator.version>3.3.0</json-schema-validator.version>
</properties>

<dependencies>
    <dependency>
        <groupId>io.rest-assured</groupId>
        <artifactId>rest-assured</artifactId>
        <version>${rest-assured.version}</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>io.rest-assured</groupId>
        <artifactId>json-schema-validator</artifactId>
        <version>${json-schema-validator.version}</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>au.com.dius</groupId>
        <artifactId>pact-jvm-consumer-junit5</artifactId>
        <version>4.0.10</version>
    </dependency>
    <dependency>
        <groupId>au.com.dius</groupId>
        <artifactId>pact-jvm-provider-junit</artifactId>
        <version>4.0.10</version>
    </dependency>

</dependencies>

<build>
    <plugins>
        <plugin>
            <groupId>au.com.dius</groupId>
            <artifactId>pact-jvm-provider-maven</artifactId>
            <version>4.0.10</version>
            <configuration>
                <pactDirectory>target/pacts</pactDirectory>
                <pactBrokerUrl>http://pact-broker-hmh.devel.hmheng-qe.brnp.internal/</pactBrokerUrl>
                <projectVersion>${project.version}</projectVersion>
                <trimSnapshot>true</trimSnapshot>
            </configuration>
        </plugin>
    </plugins>
</build>

И это то, что я вижу, когда ищу Kotlin после запуска дерева зависимостей maven. Полный проект можно найти здесь .

enter image description here

enter image description here

Большое спасибо.

1 Ответ

1 голос
/ 26 мая 2020

Возможная причина, по которой вы получаете эту ошибку (я предполагаю), заключается в том, что вы смешиваете основные версии библиотек Pact.

<pact.version>3.5.24</pact.version>
<pact-jvm-provider-maven.version>3.5.9</pact-jvm-provider-maven.version>
<pact-jvm-maven.version>3.5.24</pact-jvm-maven.version>
<pact.jvm.consumer.junit.version>4.0.10</pact.jvm.consumer.junit.version>

У вас есть версии 3.5.9, 3.5.24 и 4.0.10. Вы должны использовать ту же основную версию.

Версии 3.5.x в основном написаны на Kotlin (вероятно, версия 1.2.x), а версия 4.0.x написана с использованием Kotlin 1.3.x.

Я не уверен, почему Sprinboot влияет на вещи, но, возможно, зависимость Spring также включает версию стандартной библиотеки Kotlin.

Лучше всего использовать версию 4.0. 10 для всех библиотек Pact, затем запустите плагин дерева зависимостей Maven и проверьте, какие версии Kotlin стандартных библиотек используются.

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