Kafka最新源码编译过程

本文详细记录了从安装必备环境到成功编译Kafka源码的完整过程,包括遇到的问题及解决方案,如Gradle版本问题和IDEA中导入项目的注意事项。
摘要由CSDN通过智能技术生成

开篇

最近准备研究一下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                                                                ✔  180312: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 ↵  180412:21:42

Welcome to Gradle 5.6.2
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值