1、gradle安装
下载4.5版本,解压后配置环境变量即可。
注:gradle安装完成后, 为了加快依赖文件的下载需要在用户目录中新建init.gradle文件(让全局可见,build时会用到)。文件的具体内容为:
目录:C:\Users\admin.gradle
allprojects{
repositories {
def ALIYUN_REPOSITORY_URL = 'http://maven.aliyun.com/nexus/content/groups/public'
def ALIYUN_JCENTER_URL = 'http://maven.aliyun.com/nexus/content/repositories/jcenter'
def GRADLE_LOCAL_RELEASE_URL = 'https://repo.gradle.org/gradle/libs-releases-local'
def ALIYUN_SPRING_RELEASE_URL = 'https://maven.aliyun.com/repository/spring-plugin'
def CENTRAL_MAVEN_URL = 'http://central.maven.org/maven2'
def GRADLE_PLUGIN_URL = 'https://plugins.gradle.org/m2'
all { ArtifactRepository repo ->
if(repo instanceof MavenArtifactRepository){
def url = repo.url.toString()
if (url.startsWith('https://repo1.maven.org/maven2')) {
project.logger.lifecycle "Repository ${repo.url} replaced by $ALIYUN_REPOSITORY_URL."
remove repo
}
if (url.startsWith('https://jcenter.bintray.com/')) {
project.logger.lifecycle "Repository ${repo.url} replaced by $ALIYUN_JCENTER_URL."
remove repo
}
if (url.startsWith('http://repo.spring.io/plugins-release')) {
project.logger.lifecycle "Repository ${repo.url} replaced by $ALIYUN_SPRING_RELEASE_URL."
remove repo
}
}
}
maven {
url ALIYUN_REPOSITORY_URL
}
maven {
url ALIYUN_JCENTER_URL
}
maven {
url ALIYUN_SPRING_RELEASE_URL
}
maven {
url GRADLE_LOCAL_RELEASE_URL
}
maven {
url CENTRAL_MAVEN_URL
}
maven {
url GRADLE_PLUGIN_URL
}
}
}
如图:
2、ES5.6.2源码下载
git地址:https://github.com/elastic/elasticsearch.git
- 在IDEA中使用git下载ES源码,默认下载master分支。待master分支下载完成后再终端窗口执行git命令切换到需要的版本,本文以5.6.2的tag为例, 切换分支命令:
git checkout v5.6.2
- 在ES源码的根目录执行:
gradle idea
为IDEA生成相应的项目结构。
- 然后在手动导入源码到IDEA中。
3、 源码目录说明
根目录下面的distribution目录是打包目录, 改目录下有各种目录,比如rpm、tar等等, tar目录就是用于打tar包的,打包的时候执行tar下面的build.gradle脚本。如图:
4、 编译
- 如果打tar包的话,CMD窗口路径切换到es_src/distribution/tar目录,第一次执行gradle命令:
gradle
- gradle命令执行完成后, 执行:
gradle build --stacktrace
- 生成的tar包目录
es_src\distribution\tar\build\distributions