环境
idea2020
jdk1.8
gradle3.5
scala2.11.8
zookeeper(单机集群都能够)
kafka-0.10.1
步骤
0.idea提前设置
首先装置scala插件
idea的设置外面左侧有一个“Plugins”,搜寻scala相干的插件,此时一开始是找不到的,而后点击“search in repositories”,找到一个“Scala”插件,他的类别是“Language”,在线装即可,他会下载之后装置。装置后如下图:
1.克隆源码
git clone https://github.com/apache/kafka.git
拉取近程分支:
git fetch origin
切换到目标分支
git checkout -b 0.10.1 origin/0.10.1
这个时候切记不能先用idea间接关上我的项目!
2.打包环境
kafka自带了一些Gradle的Task,能够生成出导入Eclipse或者Idea配置。
在Kafka目录下执行
gradle jargradle idea
这个时候目录下会呈现一个文件叫kafka.ipr
在finder中双击这个文件,idea会主动关上并导入我的项目。个别Idea关上会,右下角会弹出一个框,意思是:咱们检测出这个是Gradle我的项目,须要导入Gradle的配置吗?
这个时候,点击确认就行。
如果关上Idea啥也没产生,那么就须要咱们本人关上文件build.gradle
注:也就是这个时候才会关上Idea
3.批改配置
3.1 gradle.build文件
文件增加:
ScalaCompileOptions.metaClass.daemonServer = trueScalaCompileOptions.metaClass.fork = trueScalaCompileOptions.metaClass.useAnt = falseScalaCompileOptions.metaClass.useCompileDaemon = false
3.2 创立文件
创立log目录和 data目录
创立resources目录,将config下的log4j.properties文件放到resources目录下
3.3 批改文件
批改 config/server.properties 文件中的 ${kafka.logs.dir} 都改到新创建的log目录。
批改config/server.properties 文件中 log.dirs 改为新创建的 data目录。
4.配置gradle
注:配置次gradle特地重要,有时候咱们呈现的编译失败的问题很多时候是因为本地gradle配置问题,比方:
* Where:Build file 'D:\idePro\kafka0.1.0.1\kafka-0.10.1\kafka-0.10.1\build.gradle' line: 305* What went wrong:A problem occurred evaluating root project 'kafka-0.10.1'.> Cannot set the value of read-only property 'additionalSourceDirs' for task ':jacocoRootReport' of type org.gradle.testing.jacoco.tasks.JacocoReport.* 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.orgDeprecated Gradle features were used in this build, making it incompatible with Gradle 7.0.Use '--warning-mode all' to show the individual deprecation warnings.See https://docs.gradle.org/6.5.1/userguide/command_line_interface.html#sec:command_line_warnings
5.kafka主动编译
设置好下面步骤后,kafka会依据本地的gradle进行主动编译。
导入的过程也须要不少的工夫,须要急躁期待,会显示的是如下的图:
最初导入胜利如下图:
6.启动kafka配置
如果咱们要在IntelliJ IDEA里启动kafka,通过源码的形式来启动。
此外,Kafka的启动类是“kafka.Kafka”,他是要读取“server.properties”文件的,必须给他指定这个文件的所在位置才能够,在idea右上方的启动菜单栏里,有一个“Run”菜单,点击后,外面有一个“Edit Configuration”菜单,点击这个
呈现上图之后,抉择“+”号,而后抉择“Application”,“Name”输出为“Kafka”,“Main Class”输出为“kafka.Kafka”,“Program arguments”输出为“config/server.properties”,“use classpath of module”输出为“core_main”