我们已将 spring-boot 版本升级为 3.2.1。发布嵌入式 Kafka(@EmbadedKafka) 无法启动。
Java版本:17.0.8 MVN版本:3.5.8
子模块POM
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.fault</groupId>
<artifactId>topology</artifactId>
<version>1.0.0-SNAPSHOT</version>
</parent>
<name>cdc-service</name>
<artifactId>cdc-service</artifactId>
<packaging>jar</packaging>
<properties>
<java.version>17</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>com.github.ulisesbocchio</groupId>
<artifactId>jasypt-spring-boot</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.kafka</groupId>
<artifactId>spring-kafka</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.kafka</groupId>
<artifactId>spring-kafka-test</artifactId>
<scope>test</scope>
</dependency>
<!-- <dependency>
<groupId>org.apache.kafka</groupId>
<artifactId>kafka-clients</artifactId>
</dependency> -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<mainClass>com.cdc.MyServiceApplication</mainClass>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
父模块 Pom
<properties>
<java.version>17</java.version>
<revision>1.0.0-SNAPSHOT</revision>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<!-- common -->
<spring.boot.version>3.2.1</spring.boot.version>
<jasypt.spring.version>3.0.5</jasypt.spring.version>
</properties>
它抛出异常以下
java.lang.NoClassDefFoundError: org/apache/kafka/coordinator/group/assignor/RangeAssignor
at kafka.server.Defaults$.<clinit>(KafkaConfig.scala:179) ~[kafka_2.13-3.6.0.jar:na]
at kafka.server.KafkaConfig$.<clinit>(KafkaConfig.scala:746) ~[kafka_2.13-3.6.0.jar:na]
at kafka.server.KafkaConfig.DeleteTopicEnableProp(KafkaConfig.scala)
我们添加了所需的 jar (kafka-cordinator jar) 来解决此问题。但在那之后,它会抛出一些其他类未找到的错误。是否需要这种依赖性?
测试类级别注释
@SpringBootTest
@DirtiesContext
@EmbeddedKafka(partitions = 1, brokerProperties = {"auto.create.topics.enable=false"}, topics = {"topic1","topic2"}, ports = 9092)
@TestMethodOrder(MethodOrderer.OrderAnnotation.class)
@TestInstance(TestInstance.Lifecycle.PER_CLASS)
最新版本需要添加什么额外的东西吗?