01-Kafka源码编译阅读环境搭建

开发环境: Oracle Java 1.7.0_79 + Idea15.0.2 +Scala 2.10.4+Gradle 4.0.1 + Kafka 0.10.0.0

一、Gradle安装配置

Kafka代码自0.8.x之后就使用Gradle来进行编译和构建了,因此首先需要安装GradleGradle集成并吸收了Maven主要优点的同时还克服了Maven自身的一些局限性——你可以访问https://www.gradle.org/downloads/ 下载最新的Gradle版本。下载解压到一个目录,然后创建一个环境变量GRADLE_HOME指向解压的目录,再将%GRADLE_HOME%\bin加到PATH环境变量中,Gradle就安装配置好了。打开一个cmd输入gradle -v 验证一下:


二、Kafka源代码下载

  安装好Gradle之后我们开始下载Kafka的源代码,当前最新的稳定版本是0.11.0.0,目前我们使用的是0.10.0.0版本,你可以从http://kafka.apache.org/downloads.html处下载源代码包。下载之后解压缩到一个目录,目录结构如下图所示:

重要目录的作用如下:

bin目录:     WindowsUnix平台下的执行脚本,比如kafka-server-startconsole-producerconsole-consumer
clients
目录:      Kafka客户端代码
config
目录:       Kafka配置文件,其中比较重要的是server.properties,启动Kafkabroker需要直接加载这个文件
contrib
目录:     Kafkahadoop集成的代码,包括hadoop-consumerhadoop-producer
core
目录:         Kafka的核心代码,也是作者后面重点要学习的部分
examples
目录: Kafka样例代码,例如如何使用Java编写简单的producerconsumer
system_test:   系统测试脚本,主要用python编写



其他的目录和配置文件大多和gradle配置有关,就不赘述了。

三、下载gradle wrapper类库

  将这个配置单独作为一个步骤是因为官网的教程中并没有详细给出这方面的配置方法。如果直接从官网下载了源代码进而执行gradlew eclipse生成项目工程就会报错:

Error: Could notfind or load main classorg.gradle.wrapper.GradleWrapperMain

  在Kafka源代码的gradle子目录中果然没有wrapper类库,因此我们要先安装一个Gradle Wrapper库,方法也很简单,打开个cmd窗口,在Kafka源代码根目录下执行gradle wrapper即可。你只需运行这个命令一次即可。如果是首次安装需要花一些时间去下载所需的jar包。Kafka的源代码是用Scala语言编写的,下图中清晰地显示我们使用Scala版本是2.10.4。你可以gradle.properties文件中指定Scala版本。



出现上述错误:

解决方案:在build.gradle文件中添加如下

ScalaCompileOptions.metaClass.daemonServer= true

ScalaCompileOptions.metaClass.fork= true

ScalaCompileOptions.metaClass.useAnt= false

ScalaCompileOptions.metaClass.useCompileDaemon= false





命令运行成功之后,在kafkagradle子目录中会多出一个wrapper子目录,里面包含了一个jar包和一个配置文件。至此Gradle wrapper已被成功安装在本机:




四、生成IDEA工程文件并导入到IDEA

上述准备工作一切就绪后,我们现在可以生成IDEA工程文件。具体做法为打开一个cmd窗口,切换到kafka源代码根路径下,运行gradle idea,如果是第一次运行,可能会花费一些时间去下载必要的jar包,在等待了一段时间之后,终于看到了BUILDSUCCESSFUL的字样表示项目工程文件生成成功:



项目导入到IDEA工程中

File-->Open



IDEA中查看源码工程



 

到此 为止,源码已经就位,可以开心的去研究源代码的流程了。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值