前言:gradle不同版本之間存在不兼容的情況,使用其他版本可能會報錯。
編譯項目時,網絡問題可能會導致依賴下載失敗,建議用自己的網,不要用公司有限制的網。
1.環境與准備工作
- windows 10
- IDEA 2018.2.5
- JDK 1.8.0_162
- Gradle 3.5
2.安裝Gradle 3.5
參考:https://gradle.org/install/
gradle是免安裝的,下載安裝包並解壓到本地安裝目錄,並配置環境變量即安裝完成。
在系統變量 Path 下添加 \安裝目錄\gradle-3.5\bin,例如:
驗證安裝結果:
配置遠程阿里雲倉庫
在gradle目錄下的init.d目錄中創建名為init.gradle文件,內容如下:
allprojects{
repositories {
def REPOSITORY_URL = 'http://maven.aliyun.com/nexus/content/groups/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 {
url REPOSITORY_URL
}
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
3.下載源代碼
下載鏈接:https://github.com/elastic/elasticsearch/tree/v5.3.2
4.編譯項目,打包
進入解壓后的源碼目錄,執行編譯命令:
gradle assemble
- 1
編譯過程中會下載依賴文件,編譯完成后系統打印“BUILD SUCCESSFUL”代表編譯成功。完整的打包文件位於
./distribution目錄,包含tar、zip等多種格式的包,例如:
5.將工程導入IDEA
1)進入elasticsearch源碼目錄,執行 gradle idea, 生成IDEA的項目文件,正常完成顯示“BUILD SUCCSEEFUL”.
2)創建用於ES讀取配置的目錄
創建一個目錄,此處命名為eshome,用於ES從中加載模塊、讀取配置、寫入數據和日志,可以將gradle編譯打包的軟件包解壓,然后將config、modules、plugins目錄拷貝到eshome文件夾中,軟件包位於distribution/zip/build/distributions下:
(1)在ES源碼解壓后的目錄下,進入gradle打包后的軟件包所在目錄:distribution/zip/build/distributions
(2)解壓zip文件,並進入解壓后的目錄,將config、modules、plugins目錄拷貝到eshome目錄:
3)選擇import project,將源碼加壓后的文件目錄導入,選擇gradle
配置JVM和gradle home
導入后:
4)IDEA菜單中選擇Run->Edit Configurations,點擊“+”添加Application,配置下列信息:
其中vm options配置如下:
-Des.path.home=/Users/shanmenglu/Documents/eshome
-Des.path.conf=/Users/shanmenglu/Documents/eshome/config
-Xms1g
-Xmx1g
-Dlog4j2.disable.jmx=true
-Djava.security.policy=/Users/shanmenglu/Documents/eshome/config/elasticsearch.policy
- 1
- 2
- 3
- 4
- 5
- 6
Main Class配置啟動類,該類在core目錄下src/java/org/elasticsearch/bootstrap/Elasticsearch.java
5.運行main方法
點擊Run運行項目,控制台輸出下列日志:
在瀏覽器地址欄輸入http://localhost:9200,顯示如下內容,說明ElasticSearch本地成功運行
參考:
《ElasticSearch源碼解析與優化實戰》
https://blog.csdn.net/lom9357bye/article/details/86662367
https://blog.csdn.net/weixin_33912445/article/details/87292225
https://www.w3cschool.cn/gradle/9b5m1htc.html
https://blog.csdn.net/wqc19920906/article/details/82353541
</div>
<link href="https://csdnimg.cn/release/phoenix/mdeditor/markdown_views-e9f16cbbc2.css" rel="stylesheet">
</div>