获取此Esception java.lang.NoClassDefFoundError:org / apache / kafka / streams / internals / QuietStreamsConfig。
可能是因为依赖冲突。 pom.xml中的相关jars
<dependency>
<groupId>org.apache.kafka</groupId>
<artifactId>kafka-streams-test-utils</artifactId>
<version>5.5.0-ccs</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.kafka</groupId>
<artifactId>kafka-streams</artifactId>
<version>1.0.1</version>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</exclusion>
<exclusion>
<groupId> org.apache.kafka</groupId>
<artifactId>kafka-clients</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.kafka</groupId>
<artifactId>kafka-clients</artifactId>
<version>1.0.1</version>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</exclusion>
</exclusions>
</dependency>
当我运行此命令时** mvn依赖项:tree -Dverbose -Dincludes = org.apache.kafka**
com.walmart.sims.ica:fault-handler:jar:0.0.1-SNAPSHOT
[INFO] +- org.apache.kafka:kafka-streams-test-utils:jar:5.5.0-ccs:test
[INFO] | +- (org.apache.kafka:kafka-streams:jar:5.5.0-ccs:test - omitted for conflict with 1.0.1)
[INFO] | \- (org.apache.kafka:kafka-clients:jar:5.5.0-ccs:test - omitted for conflict with 1.0.1)
[INFO] +- org.apache.kafka:kafka-streams:jar:1.0.1:compile
[INFO] | \- org.apache.kafka:connect-json:jar:1.0.1:compile
[INFO] | \- org.apache.kafka:connect-api:jar:1.0.1:compile
[INFO] \- org.apache.kafka:kafka-clients:jar:1.0.1:compile
所以我的测试依赖项由于冲突而被忽略,因此运行测试时会得到ClassNotFoundException。
我应该如何解决冲突,以便在测试范围内可以使用来自test-utils的依赖关系,否则在编译范围内使用kafka-streams和kafka-clients依赖关系?
kafka-streams-test-utils
降级为使用kafka-streams:1.0.1
的版本,或者将应用程序使用的kafka-streams
版本升级为5.5.0-ccs。我认为test-utils版本5.5.0-css无论如何都不能与流版本1.0.1一起正常工作。但是,如果您想尝试,可以从test-utils中排除kafka-streams和kafka-client依赖项