Maven冲突依赖性kafka-stream-test-utils和kafka-streams

问题描述 投票:0回答:1

获取此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依赖关系?

java maven apache-kafka
1个回答
0
投票
在真实的产品代码中使用一个版本而对测试代码使用较新版本的依赖关系有什么意义?我建议将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依赖项
© www.soinside.com 2019 - 2024. All rights reserved.