錯誤:
org.gradle.api.internal.tasks.DefaultTaskContainer$TaskCreationException:
Could not create task
‘:spotlessInternalRegisterDependencies’.Caused by:
org.gradle.api.tasks.TaskInstantiationException: Could not create task
of type ‘RegisterDependenciesTask’.Caused by:
java.lang.UnsupportedClassVersionError:
org/eclipse/jgit/lib/AnyObjectId has been compiled by a more recent
version of the Java Runtime (class file version 55.0), this version of
the Java Runtime only recognizes class file versions up to 52.0。
根據錯誤應該是版本不匹配造成的,開始使用的版本: jdk1.8, kafka3.0 scala2.11
去kafka官網查詢對應的版本關系,發現 kafka3.0 不支持Java 8 和 Scala 2.12
下面是官網簡述:
3.0.0
- 2021 年 9 月 21 日發布
- 發行說明
- 源碼下載:kafka-3.0.0-src.tgz ( asc , sha512 )
- 二進制下載:
- Scala 2.12 - kafka_2.12-3.0.0.tgz ( asc , sha512 )
- Scala 2.13 - kafka_2.13-3.0.0.tgz ( asc , sha512 )
Kafka 3.0.0 包含許多重要的新功能。以下是一些顯着變化的摘要:
- 不再支持 Java 8 和 Scala 2.12
- Kafka Raft 支持元數據主題的快照以及自我管理的仲裁中的其他改進
- 為默認啟用的 Kafka 生產者提供更強的交付保證
- 棄用消息格式 v0 和 v1
- OffsetFetch 和 FindCoordinator 請求的優化
- 更靈活的 Mirror Maker 2 配置和 Mirror Maker 1 的棄用
- 能夠在 Kafka Connect 中的一次調用中重新啟動連接器的任務
- 現在默認啟用連接器日志上下文和連接器客戶端覆蓋
- Kafka Streams 中時間戳同步的增強語義
- 改進了 Stream 的 TaskId 的公共 API
- Kafka 中的默認 serde 變為 null
解決辦法:
安裝本地環境 java11,scala 2.13.8,kafka 3.0 ,Gradle 7.2
網上看過一個關於kafka3.0與Gradle版本錯誤問題,由下面這段話得出, kafka 3.0 只支持 Gradle 7.0 以上的版本,所以這一點也需要注意,我編譯kafka 3.0使用的是Gradle7.2。
What went wrong: A problem occurred evaluating root project ‘kafka-3.0.0-src’. Failed to apply plugin class
‘com.github.jengelman.gradle.plugins.shadow.ShadowBasePlugin’.
This version of Shadow supports Gradle 7.0+ only. Please upgrade.
一旦遇到Gradle的以上報錯的解決辦法:
Gradle官網(https://gradle.org/releases/)下載了version 7.2(這里kafka3.0源碼,只要版本>=7.0即可),
修改idea Gradle build的配置: