以我自己编译kafka为例。
- gradle5.2
- java8
- scala2.12.12
- kafka2.11.0
- idea社区版
一、拉取kafka源码
找到一个空文件夹,拉取kafka源码。例D:\yh\SourceCode
打开cmd,执行如下命令:
git clone https://github.com/apache/kafka.git
## 切换到kafka0.11.0分支
git checkout 0.11.0
二、安装gradle并编译kafka源码
1、配置gradle,新增用户变量
2、配置gradle,配置path
3、配置gradle仓库
在C:\Users{用户名}.gradle 目录下新建一个文件init.gradle
allprojects {
repositories {
def REPOSITORY_URL = 'http://127.0.0.1:8081/repository/maven-public/'
all { ArtifactRepository repo ->
if (repo instanceof MavenArtifactRepository) {
def url = repo.url.toString()
if (url.startsWith('https://repo1.maven.org/maven2') || url.startsWith('https://jcenter.bintray.com/')) {
project.logger.lifecycle "Repository ${repo.url} replaced by $REPOSITORY_URL."
remove repo
}
}
}
maven { ArtifactRepository repo ->
// 判断属性是否存在,之后再设置
if(repo.metaClass.hasProperty(repo, 'allowInsecureProtocol')){
allowInsecureProtocol true
}
url REPOSITORY_URL
}
}
}
4、编译kafka
- cmd命令行,切换到进入到kafka源码包的安装目录,执行命令
gradle idea
提示504行,有错,我们打开build.gradle
将gradle-scoverage的版本由2.1.0改为2.5.0,
同时建议将gradle.plugins:shadow的版本改为2.0.1
修改了build.gradle以后,再使用gradle idea 然后编译成功,整个编译过程比较慢,需要耐心等待。编译成功如下: