我想使用Kafka for 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 $
答案 0 :(得分:0)
UPD
我按@AntonLitvinenko的建议使用Kafka for JUnit遇到了异常。我的问题here。
我添加了此依赖关系以对其进行修复(请参见issue):
<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
我决定在Salesforce之前使用另一个Kafka-JUnit库。我添加了这组依赖项:
<!-- 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>
现在我的测试效果很好。
您可以查看此库here的使用说明。
我试图将Kafka版本提高到2.1.1,但有一个例外:
java.lang.NoClassDefFoundError:scala / Function1
所以,我认为主要问题是使用Kafka版本。