Как исправить проблему с Kafka для JUnit? - PullRequest
0 голосов
/ 26 марта 2019

Я хочу использовать Кафку для JUnit , поэтому я добавил эту зависимость:

<dependency>
    <groupId>net.mguenther.kafka</groupId>
    <artifactId>kafka-junit</artifactId>
    <version>2.1.0</version>
    <scope>test</scope>
</dependency>

Локально это работает хорошо.Но на Дженкинс я получаю ошибку:

java.lang.NoClassDefFound scala / math / Ordering

Если я добавлю scala-library зависимость (версия 2.1.12),Я получаю:

java.lang.NoClassDefFound com.typesafe.scalalogging.Logger $

Кроме того, у меня есть несколько Apache Beam зависимостей с 2.9.0 версией.

Что я могу проверить, чтобы решить эту проблему?

UPD :

Если я добавлю эту зависимость:

<dependency>
    <groupId>com.github.charithe</groupId>
    <artifactId>kafka-junit</artifactId>
    <version>${kafkaJunit.version}</version>
</dependency>

Я получаю:

java.lang.NoClassDefFoundError: scala / MatchError

Если я добавлю scala-library (версия 2.1.12), я получу:

java.lang.NoSuchMethodError: scala.Predef $ .refArrayOps ([Ljava / lang / Object;) [Ljava / lang / Object;

И с последней версией я получаю:

java.lang.NoClassDefFound com.typesafe.scalalogging.Logger $

1 Ответ

0 голосов
/ 26 марта 2019

UPD

Я получил исключение, используя Kafka для JUnit , как предложил @AntonLitvinenko. Мой вопрос об этом здесь .

Я добавил эту зависимость, чтобы исправить ее (см. Проблему ):

<dependency>
    <groupId>org.apache.curator</groupId>
    <artifactId>curator-test</artifactId>
    <version>2.12.0</version>
    <exclusions>
        <exclusion>
           <groupId>org.apache.zookeeper</groupId>
            <artifactId>zookeeper</artifactId>
        </exclusion>
    </exclusions>
    <scope>test</scope>
</dependency>

Также я использовал 2.0.1 версию для kafka-junit и kafka_2.11:

<dependency>
    <groupId>org.apache.kafka</groupId>
    <artifactId>kafka_2.11</artifactId>
    <version>${kafkaVersion}</version>
    <scope>test</scope>
</dependency>

OLD

Я решил использовать другую библиотеку Kafka-JUnit от Salesforce . Я добавил эту группу зависимостей:

<!-- Declare kafka-junit4 dependency -->
<dependency>
    <groupId>com.salesforce.kafka.test</groupId>
    <artifactId>kafka-junit4</artifactId>
    <version>3.1.1</version>
    <scope>test</scope>
</dependency>

<!-- Include Kafka 2.0.x -->
<dependency>
    <groupId>org.apache.kafka</groupId>
    <artifactId>kafka_2.11</artifactId>
    <version>2.0.1</version>
    <scope>test</scope>
</dependency>
<dependency>
    <groupId>org.apache.kafka</groupId>
    <artifactId>kafka-clients</artifactId>
    <version>2.0.1</version>
    <scope>test</scope>
</dependency>

А теперь мой тест работает хорошо.

Инструкции по использованию этой библиотеки здесь .

Я пытался увеличить версию Kafka до 2.1.1, и у меня есть исключение:

java.lang.NoClassDefFoundError: scala / Function1

Итак, я думаю, что основная проблема заключается в использовании версии Kafka.

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