博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java集成kafka依赖包怎么导入,Kafka指南-源码导入Idea
阅读量:5868 次
发布时间:2019-06-19

本文共 2792 字,大约阅读时间需要 9 分钟。

前言

虽然网上教程很多,但是我依然要写系列

因为我踩到的坑有的是网上没有遇到过的

详细步骤

克隆源码

git clone https://github.com/apache/kafka.git

这个时候切记不能先用idea直接打开项目!

这个时候切记不能先用idea直接打开项目!

这个时候切记不能先用idea直接打开项目!

打包环境

kafka自带了一些Gradle的Task,可以生成出导入Eclipse或者Idea配置。

在Kafka目录下执行

1

2./gradlew jar

./gradlew idea

这个时候目录下会出现一个文件叫kafka.ipr

在finder中双击这个文件,idea会自动打开并导入项目。

注:也就是这个时候才会打开Idea

配置Gradle

一般Idea打开会,右下角会弹出一个框,大致意思是:

我们检测出这个是Gradle项目,需要导入Gradle的配置吗?

这个时候,点击确认就行。

如果打开Idea啥也没发生,那么就需要我们自己打开文件build.gradle

然后进行刷新之类的操作,具体我也忘了怎么操作的。

修改配置

一些配置的修改是比较重要的

文件build.gradle

第一处修改:

找到tasks.withType(ScalaCompile) {这一行

修改scalaCompileOptions.additionalParameters的配置1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24scalaCompileOptions.additionalParameters = [

"-nowarn", //新增

"-deprecation",

"-unchecked",

"-encoding", "utf8",

"-Xlog-reflective-calls",

"-feature",

"-language:postfixOps",

"-language:implicitConversions",

"-language:existentials",

// "-Xlint:constant", //注释

// "-Xlint:delayedinit-select",

// "-Xlint:doc-detached",

// "-Xlint:missing-interpolator",

// "-Xlint:nullary-override",

// "-Xlint:nullary-unit",

// "-Xlint:option-implicit",

// "-Xlint:package-object-classes",

// "-Xlint:poly-implicit-overload",

// "-Xlint:private-shadow",

// "-Xlint:stars-align",

// "-Xlint:type-parameter-shadow",

// "-Xlint:unused"

]

第二处修改:

还有tasks.withType(JavaCompile) {这一行

修改为

1

2

3

4

5

6

7

8

9

10

11

12

13

14tasks.withType(JavaCompile) {

options.encoding = 'UTF-8'

// options.compilerArgs << "-Xlint:all"

// temporary exclusions until all the warnings are fixed

// options.compilerArgs << "-Xlint:-rawtypes"

// options.compilerArgs << "-Xlint:-serial"

// options.compilerArgs << "-Xlint:-try"

// options.compilerArgs << "-Werror"

// --release is the recommended way to select the target release, but it's only supported in Java 9 so we also

// set --source and --target via `sourceCompatibility` and `targetCompatibility`. If/when Gradle supports `--release`

// natively (https://github.com/gradle/gradle/issues/2510), we should switch to that.

if (JavaVersion.current().isJava9Compatible())

options.compilerArgs << "--release" << minJavaVersion

}

上面两个修改主要是为了Idea启动时编译,会把一堆warn当做Error报出来,Gradle不给启动

第三处修改:

找到project(':core') {这一行

下面会有一堆

1

2

3

4

5dependencies {

compile project(':clients')

compile libs.jacksonDatabind

compile libs.jacksonModuleScala

~~~

这种配置

在compileOnly libs.log4j这一行的下面,加上

compile libs.slf4jlog4j

这个修改主要是终端启动Kafka的时候日志打印不出来的问题

很多的网上的答案都是让自己把两个依赖加进去,但是我发现其实Kafka配置了两个依赖,但是却没有Compile,所以不需要自己加进去,只要加上这行配置就行

配置log4j文件

第一步:把config目录下的log4j.properties文件复制到core/src/main/resources目录下

需要创建rescources目录

如图所示:

ea49b3e57f895ae2049e3cd52f501a13.png

并不是很多网上说的复制到/scala目录下

第二步:修改log4j.properties文件

主要是把很多的${kafka.logs.dir}这种变量去掉,换成自己电脑上的绝对路径

启动配置

下面就是启动配置了,这个网上都有,我就直接复制一下

首先得自己启动一个Zookeeper进程

Broker

7a62b7a08b570ca196fe591d5e201da0.png

Consumer

Program arguments可根据自己的情况修改

4d2a199b65de397ac28bc12593145e81.png

produer

Program arguments可根据自己的情况修改

2329fc0e58cc00fb841b1e501807f0f0.png

转载地址:http://qftnx.baihongyu.com/

你可能感兴趣的文章
记录一些有用的代码技巧,不定期更新
查看>>
打造全民健康平台 加速实现智慧医疗
查看>>
集成商聚焦
查看>>
CentOS5.8配置×××服务器
查看>>
Monkey测试
查看>>
2014-8-10 北漂三周年
查看>>
tornado 服务器 - 读写2进制rest请求
查看>>
IBM is still thinking!
查看>>
我的友情链接
查看>>
kafka 常用命令与问题(持续更新)
查看>>
抓取全国行政机构(省市县镇村)
查看>>
Nginx中如何限制某个IP同一时间段的访问次数
查看>>
2018-8-7 SystemD
查看>>
Python 中的 urllib2 模块
查看>>
IDE---Gvim之ubuntu下配置php的ide开发工具
查看>>
mysql索引操作
查看>>
J2EE的web.xml中filter-mapping的位置导致的乱码问题
查看>>
在Nginx中搭建Nagios监控平台
查看>>
Linux下调整根目录的空间大小
查看>>
cacti unable to connect to smtp host
查看>>