开篇
最近准备研究一下kafka的源码,最直接的就是把源码下载下来,通过debug进行研究。经过一段折腾,最终把环境给搭建好了,在这里和大家分享一下。
步骤
第1步 安装必备环境
- 安装 Java 和 Gradle
- 安装Idea的 Scala 插件
提示:
如果你电脑上没有安装过 Gradle 或者 Scala 可以先去官网上看一下 kafka 依赖的版本,然后下载成一样的,不然在编译过程中还会现在他们依赖的版本。或者修改配置文件改变版本号
第2步 下载源码
下载 Kafka 的源码
使用如下命令:
$ cd {
要存储Kafka源码的路径}
$ git clone https://github.com/apache/kafka.git
运营完这个代码后,会直接拉取最新的代码到本地。
第3步 下载 Gradle 的 Wrapper 程序套件
切换到源码目录。执行 gradle 命令,主要目的是下载 Gradle 的 Wrapper 程序套件。
cd kafka
gradle
第一次我的报错如下:
~/project/personal/kafka/ gradle ✔ 1803 12:05:45
Starting a Gradle Daemon, 1 incompatible Daemon could not be reused, use --status for details
FAILURE: Build failed with an exception.
* What went wrong:
A problem occurred configuring root project 'kafka'.
> Could not resolve all artifacts for configuration ':classpath'.
> Could not download shadow.jar (com.github.jengelman.gradle.plugins:shadow:5.2.0)
> Could not get resource 'https://jcenter.bintray.com/com/github/jengelman/gradle/plugins/shadow/5.2.0/shadow-5.2.0.jar'.
> Could not GET 'https://d29vzk4ow07wi7.cloudfront.net/b748da66d6f11acef435e1f2e95151dab902bb2de23fc8af575b86237d6ba6c8?response-content-disposition=attachment%3Bfilename%3D%22shadow-5.2.0.jar%22&Policy=eyJTdGF0ZW1lbnQiOiBbeyJSZXNvdXJjZSI6Imh0dHAqOi8vZDI5dnprNG93MDd3aTcuY2xvdWRmcm9udC5uZXQvYjc0OGRhNjZkNmYxMWFjZWY0MzVlMWYyZTk1MTUxZGFiOTAyYmIyZGUyM2ZjOGFmNTc1Yjg2MjM3ZDZiYTZjOD9yZXNwb25zZS1jb250ZW50LWRpc3Bvc2l0aW9uPWF0dGFjaG1lbnQlM0JmaWxlbmFtZSUzRCUyMnNoYWRvdy01LjIuMC5qYXIlMjIiLCJDb25kaXRpb24iOnsiRGF0ZUxlc3NUaGFuIjp7IkFXUzpFcG9jaFRpbWUiOjE1OTQyNjc4OTd9LCJJcEFkZHJlc3MiOnsiQVdTOlNvdXJjZUlwIjoiMC4wLjAuMC8wIn19fV19&Signature=ZtSjU4J6RpLifrOYWHcNW3WMUbQ7StaoxqfWbVgHYddz1CIAj1nh7nWdWC12Zl~pHypaZxqHigvKhfuTQzhqLDOo03yM98sLKqXe3iUAE1NXh689y6KWsJY5ZK91bLzldSSXgrNszx~UaomGKr9CXrWtds5ckgR5NjnsTirr62G35od28SHoAFtlG665~uR-LDWVInaG6nw9bmbSfNFR8w7BwmVLfxFTgUU6MP4bHfxC1AwI54s3wzj-F3yJw9FwRSxCnbJVILiJafLkuS5pzwagYuCI13OvDoQTrWw4f8PsEZpdEUtK20K6CuVhz6gPsHOCzEqM6RJqm-23MD9P0g__&Key-Pair-Id=APKAIFKFWOMXM2UMTSFA'.
> Received close_notify during handshake
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
* Get more help at https://help.gradle.org
BUILD FAILED in 1m 16s
看样子是jar没下载下来。我又重新执行了一遍这一步过去了。然后又出现了如下报错:
Starting a Gradle Daemon, 1 busy and 1 incompatible Daemons could not be reused, use --status for details
FAILURE: Build failed with an exception.
* Where:
Build file '/Users/{}/project/personal/kafka/build.gradle' line: 182
* What went wrong:
A problem occurred evaluating root project 'kafka'.
> Failed to apply plugin [class 'com.github.spotbugs.snom.SpotBugsBasePlugin']
> Gradle version Gradle 5.3.1 is unsupported. Please use Gradle 5.6 or later.
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
* Get more help at https://help.gradle.org
BUILD FAILED in 51s
这个报错是因为我本地安装的 Gradle 版本过低。编译当前的源码需要 Gradle 5.6 or later 。所以我又重新下载了最新的 Gradle ,然后再次执行命令。这行代码也跑过了,但是又出现了如下错误:
~/project/personal/kafka /usr/local/gradle/gradle-5.6.2/bin/gradle 1 ↵ 1804 12:21:42
Welcome to Gradle 5.6.2