elasticsearch開発環境
はじめに
やりたいこと
elasticsearchの動作解析(主にMoreLikeThisAPI)をしたい
ソースコードからビルド、デバッグできる環境を構築したい
eclipseではなく
どうせなら、最近のIDEを使いたい!!
(実は、eclipseがうまく設定できなかった...)
IntelliJ(IDEA)でやってみる
elasticsearch 5.xから maven -> gradleに変更となっています。
構築環境
type | version |
---|---|
OS | Mac OSX 10.11.6 (Sierra怖い...) |
IDE | IntelliJ Community Edition 2016.3 |
JDK | jdk1.8.0_121.jdk |
BuildSystem | gradle 2.13 (2.13以外はNG) |
SDKMAN(旧gvm) | SDKMAN 5.5.4+199 |
updated at 2017.3.15 |
1. JDK
JDK download
例) JDK -> MacOS X(jdk-8u121-macosx-x64.dmg)
インストール
ダウンロード後、クリックしてインストールするだけ
2. gradle
[事前準備]
SDKMAN!
旧gvm: gradle バージョン切替可能(pyenvみたいなもの)
理由: gradle 2.13にする必要があるため
インストール
$ curl -s "https://get.sdkman.io" | bash
$ source "$HOME/.sdkman/bin/sdkman-init.sh"
$ sdk version << version確認
<< 以降はコメント
う、うーん...カコイイ...
普通にgvmでよいような...
gradle
SDKMAN経由でインストールします
インストール
$ sdk list gradle
$ sdk install gradle 2.13
$ gradle --version << version確認
3. elasticsearch
githubからソースコードをcloneします
git clone & gradle idea
$ cd <your_project_dir>
$ git clone git@github.com:elastic/elasticsearch.git
$ git branch -a << show remote branch
$ git checkout -b 5.2 remotes/origin/5.2 << at 2017.3.15(5.3だとうまくbuildできず or 別にmasterでもよいかと)
$ gradle clean
$ gradle idea << intelliJプロジェクトに変換
<< 以降はコメント
4. IntelliJ(IDEA)
統合開発環境(IDE)
- インストール方法[割愛]
- プロジェクトインポート
- 新規
参考) 起動中からの画面
File -> New -> Project from Existing Sources...
- Gradleを選択
- ディレクトリを指定
※②Gradle homeに関して
初期状態で空欄の状態
ここがわからずにハマった...
下記を実行して出力された値を設定して解決
build.gradle追加(task run下あたりにでも)
task getHomeDir << {
println gradle.gradleHomeDir
}
- gradle実行(terminal)
$gradle getHomeDir
下記のような出力がある
ex: ~/.sdkman/candidates/gradle/2.13
参考サイト
stackoverflow
5. ビルド
プロジェクトビルド
Build -> Build Project
Edit Configuration
起動確認
$ telnet localhost:9200
result
{
"name" : "T3CzGiq",
"cluster_name" : "distribution_run",
"cluster_uuid" : "jIpXGYNOTP2dM_3b4XQr4g",
"version" : {
"number" : "5.2.3",
"build_hash" : "3e13dbb",
"build_date" : "2017-03-15T08:19:26.460Z",
"build_snapshot" : true,
"lucene_version" : "6.4.1"
},
"tagline" : "You Know, for Search"
}
その他(エラー対処)
Switch IDE boot JDK..
JDK versionが違うというエラーが出た場合
Help -> Find Action -> Switch IDE boot JDK...
自分の場合は brew installしたJDKを指定しました
参考ページ
引用
JAVA_HOME
* What went wrong:
A problem occurred evaluating project ':benchmarks'.
> Failed to apply plugin [id 'elasticsearch.build']
> JAVA_HOME must be set to build Elasticsearch
エラー内容: JAVA_HOMEが設定されていない
下記でJAVA_HOMEを設定する( ~/.bash_profileなどとは別なので注意 )
参考ページ
引用(謝)
/Library/LaunchAgents/setenv.JAVA_HOME.plist 編集(新規作成)
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>setenv.JAVA_HOME</string>
<key>ProgramArguments</key>
<array>
<string>/bin/launchctl</string>
<string>setenv</string>
<string>JAVA_HOME</string>
<string>/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>ServiceIPC</key>
<false/>
</dict>
</plist>
設定反映
$launchctl load /Library/LaunchAgents/setenv.JAVA_HOME.plist
デバッグ方法
こちらは後日別途
おわりに
環境構築面倒くさいですね...
でも、これでようやくデバッグができます!!
不備 & 問題点等あればご指摘ください(初投稿!!)