版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sunny05296/article/details/79073378
kafka client源码编译
1.下载源码,源码里面自带了一个gradlew的编译脚本:
下载地址:http://kafka.apache.org/downloads.html
下载自己需要的版本,我这里下载0.10.0.0版本为例
Source download: kafka-0.10.0.0-src.tgz (asc, md5)
2.解压kafka-0.10.0.0-src.tgz
3.下载wrapper包:
源码根目录下执行:gradle wrapper
命令执行成功后,会在 kafka 源码包的 gradle 目录下生成一个 wrapper 目录,其中包括:gradle-wrapper.jar和gradle-wrapper.properties两个文件
注意:如果因为缺少wrapper,会报错:找不到或无法加载主类 org.gradle.wrapper.GradleWrapperMain
必须先下载wrapper,会在build.gradle同级目录下生成gradle\wrapper目录,包含两个文件:
gradle-wrapper.jar
gradle-wrapper.properties
下载wrapper方法,执行gradle命令下载:
d:\kafka-0.10.0>gradle
Building project 'core' with Scala version 2.10.6
:downloadWrapper
BUILD SUCCESSFUL
Total time: 2.127 secs
然后再执行编译,就OK了。
4.编译kafka源码(编译过程中会下载依赖包,比较耗时):
gradlew eclipse //如果是eclips工程
gradlew idea //如果是idea工程
5.编译打包
gradlew releaseTarGz //编译并打包,or:gradlew releaseTarGzAll
如果遇到某些任务错误,则加参数-x排除任务,例如:
1)如果遇到错误:
:core:genKafkaConfigDocs
错误: 找不到或无法加载主类 kafka.server.KafkaConfig
:core:genKafkaConfigDocs FAILED
则使用命令:gradlew releaseTarGz -x genKafkaConfigDocs
2)如果遇到错误::core:signArchives FAILED
则使用命令:gradlew releaseTarGz -x signArchives
编译成功后会在目录:core\build\libs\下生成jar包:
kafka_2.10-0.10.0.1-SNAPSHOT-javadoc.jar
kafka_2.10-0.10.0.1-SNAPSHOT-scaladoc.jar
kafka_2.10-0.10.0.1-SNAPSHOT-sources.jar
kafka_2.10-0.10.0.1-SNAPSHOT-test-sources.jar
kafka_2.10-0.10.0.1-SNAPSHOT-test.jar
kafka_2.10-0.10.0.1-SNAPSHOT.jar
编译打包完成以后会在目录:core/build/distributions/
下面生成压缩包:kafka_2.10-0.10.0.1-SNAPSHOT.tgz 这个和从网上下载的一样,可以直接用。