7
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

elasticsearch + IntelliJ 開発環境構築

Last updated at Posted at 2017-03-15

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にする必要があるため

Official(sdkman)

インストール

terminal
$ curl -s "https://get.sdkman.io" | bash
$ source "$HOME/.sdkman/bin/sdkman-init.sh"

$ sdk version   << version確認

<< 以降はコメント

インストール画面
sdkman01.png

う、うーん...カコイイ...
普通にgvmでよいような...

gradle

SDKMAN経由でインストールします

インストール

terminal
$ sdk list gradle
$ sdk install gradle 2.13

$ gradle --version   << version確認

3. elasticsearch

githubからソースコードをcloneします

git clone & gradle idea

terminal
$ 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プロジェクトに変換

<< 以降はコメント

github(elasticsearch)

4. IntelliJ(IDEA)

統合開発環境(IDE)

Official(inntelliJ)

  • インストール方法[割愛]
  • プロジェクトインポート
  1. 新規
intellij0100.png

参考) 起動中からの画面
File -> New -> Project from Existing Sources...

inntelij01.png
  1. Gradleを選択
intellij02.png
  1. ディレクトリを指定
intellij0301.png

※②Gradle homeに関して

初期状態で空欄の状態

ここがわからずにハマった...
下記を実行して出力された値を設定して解決

build.gradle追加(task run下あたりにでも)

task getHomeDir << {
    println gradle.gradleHomeDir
}
  1. gradle実行(terminal)
$gradle getHomeDir

下記のような出力がある
ex: ~/.sdkman/candidates/gradle/2.13

参考サイト
stackoverflow

5. ビルド

プロジェクトビルド
Build -> Build Project

intellij04.png

Task実行
intellij05.png

Edit Configuration

intellij.png

起動確認

$ 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 編集(新規作成)

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 

デバッグ方法

こちらは後日別途

おわりに

環境構築面倒くさいですね...
でも、これでようやくデバッグができます!!

不備 & 問題点等あればご指摘ください(初投稿!!)

7
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?