java集成kafka依赖包怎么导入,Kafka指南-源码导入Idea

前言

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

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

详细步骤

克隆源码

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值