ES5.6.2原始碼分析(1):準備工作
阿新 • • 發佈:2018-12-12
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