masato's blog

Eclipse IoT の紹介 - Part2: macOS SierraにEclipse Neon.2をインストールする

 Eclipse KuraOSGiベースのIoT Gatewayのためのフレームワークです。アプリはjarファイルにマニフェストやリソースファイルを追加してパッケージングしたOSGiバンドルをデプロイして使います。今回はEclipuse Kuraのアプリのプログラミング環境としてmacOS SierraにEclipse IDE for Java Developersをインストールして簡単な初期設定を行います。

Java 8

 macOSのパッケージ管理ツールのHomebrewHomebrew CaskからJava 8をインストールします。Oracleのダウンロードサイトから直接パッケージをダウンロードすることもできます。

 まだHombrewを使ったことがない場合はインストールします。

$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

 インストール済みの場合は、古いHombrewとパッケージを更新して最新の状態にします。

$ brew update && brew cleanup

 Homebrew Caskをインストールします。

$ brew install caskroom/cask/brew-cask

 versionsを追加してjavaを検索します。

$ brew tap caskroom/versions
$ brew search java

 現在のjavaパッケージのバージョンは1.8.0_112です。

$ brew cask info java
java: 1.8.0_112-b16
https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
Not installed

 Java8をインストールします。

$ brew cask install java

 1.8.0_112のバージョンがインストールされました。

$ java -version
java version "1.8.0_112"
Java(TM) SE Runtime Environment (build 1.8.0_112-b16)
Java HotSpot(TM) 64-Bit Server VM (build 25.112-b16, mixed mode)

 以下のコマンドを実行するとJAVA_HOMEの場所を確認できます。

$ /usr/libexec/java_home -v 1.8
/Library/Java/JavaVirtualMachines/jdk1.8.0_112.jdk/Contents/Home

 ~/.bashrcに環境変数のJAVA_HOMEを設定します。

$ echo 'export JAVA_HOME=`/usr/libexec/java_home -v 1.8`' >> ~/.bashrc
$ source ~/.bashrc
$ echo $JAVA_HOME
/Library/Java/JavaVirtualMachines/jdk1.8.0_112.jdk/Contents/Home

Maven

 JavaアプリのビルドツールのMavenをインストールします。MavenやGradle、stbなどVMの開発ツールをインストールする場合はSDKMAN!が便利です。

 SDKMAN!をインストールします。

$ curl -s get.sdkman.io | /bin/bash

 sdkコマンドからMavenをインストールします。

$ sdk install maven

 3.3.9のバージョンがインストールされました。

$ mvn --version
Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-11T01:41:47+09:00)

Eclipse Neon.2 (4.6.2)

 macOS用のインストーラーをダウンロードサイトから取得します。
 
eclipse-downloads.png

 eclipse-inst-mac64.tar.gzファイルから解凍したEclipse Installerを実行します。以下のディレクトリのEclipseを起動します。

~/eclipse/java-neon/Eclipse

初期設定

 複数人で開発する場合はEclipseの設定を統一しておくとバージョン管理でdiffが正確に取れます。以下の私の好みなのでチームの規約に合わせて設定を確認してください。

ファイルのタブは空白にする

 Eclipseの環境設定メニューからJavaのFormatterに新しいプロファイルの作成します。適当にEclise [myproject]としました。

Eclipse -> 環境設定 -> Java -> Code Style -> Formatter -> New -> Eclipse [myproject]

java-formatter.png

 Indentationタブを以下の設定にします。

  • Tab policy: Spaces only
  • Indentation size: 4
  • Tab size: 4

java-formatter-indent.png

 Mavenで使うpom.xmlなどXMファイルも同様に設定します。

Eclipse -> 環境設定 -> XML -> XML Files -> Editor
  • Indent using spaces: チェック
  • Indentation size: 2

xml-formatter.png

ファイルの末尾は空白除去する

Java Code StyleにClean Upに新しいプロファイルの作成します。

Eclipse -> 環境設定 -> Java -> Code Style -> Clean Up -> New -> Eclipse [myproject]

java-cleanup.png

  • Remove trailing whitespace: チェック

java-cleanup-tailtrail.png

 既存のソースファイルから末尾の空白を除去する場合はこのClean UPを実行します。

src -> 右クリック -> Source -> Clean UP

 ファイル保存時に末尾の空白を削除する場合はSave Actionsを使います。

Eclipse -> 環境設定 -> Java -> Editor -> Save Actions

java-save-actions.png

  • Perform the selected actions on save: チェック

 Additional actionsの設定を変更します。

Additional actions -> Configure
  • Remove trailing whitespace: チェック
  • All lines: チェック

java-save-actions-configure.png

テーマ

 Eclipseの外観をDarkテーマを変えたい場合は以下の設定をします。

Eclipse -> 環境設定 -> General -> Apperance
  • Theme: Dark

appearance-theme.png

プラグイン

 EclipseのプラグインもOSGiバンドルとして配布されています。プラグインも好みですがとりあえず最初に必要なプラグインをいくつかインストールします。

EGit プラグイン

 EGitプラグインはEclipseからGitを操作することができます。EGitのダウンロードサイトを追加します。

Help -> Install New Software... -> Add

 使いたいパッケージをチェックしてインストールします。

  • Git integration for Eclipse
  • Java implementation of Git

egit.png

 EclipseからSSH経由でGitリポジトリを使う場合は秘密鍵の設定を行います。

Eclipse -> 環境設定 -> General -> Network Connections -> SSH2
  • SSH2 home: ホームディレクトリの~/.sshなど
  • Private keys: GitHubに登録してある公開鍵とペアの秘密鍵など

general-ssh2.png

 Gitパースペクティブを開きます。

Window -> Persepective -> Open Persepective -> Other -> Git

M2Eclipse (m2e) プラグイン

M2EclipseはEclipseからMavenコマンドを実行することができます。プラグインはインストール済みですが、ダウンロードサイトを追加しておきます。

Help -> Install New Software... -> Add

Maven SCM Handler for EGit

 Maven SCM Handler for EGitはm2eから直接git cloneしてのpom.xmlの依存関係を解決してくれます。

 パッケージエクスプローラーにプロジェクトをインポートするときのダイアログの中で、m2e Marketplaceからインストールします。

Package Explorer > Import > Maven > Check out Maven Projects from SCM > m2e Marketplace > m2e-egit

m2e-marketplace.png

 Eclipsをリスタートしてインストール終了です。

mToolkitプラグイン

 これからEclipse Kura Documentationを読みながらEclipseで簡単なOSGiのアプリをビルドしていこうと思います。準備としてEclipse Kura上で動作するOSGiコンテナにリモートから接続できるmToolkitのプラグインをインストールします。BoschグループのProSystが提供しているOSGi管理ツールのmBS SDKに含まれています。

Help -> Install New Software... -> Add
  • Group items by category: チェックを外す
  • mTooklit: チェック

Plug-in Development Environment (PDE) プラグイン

 Plug-in Development Environment (PDE)はEclipseのプラグインを開発するためのツールです。OSGiプロジェクトの開発ではComponent Definition (component.xml)を作成するウィザードを利用します。

Help -> Install New Software...

type filter textフィールドにEclipse plug-inを入力して検索します。

plugin-install.png

 これでEclipse KuraのOSGiバンドル開発のためのEclipse Neon.2のセットアップは終了です。次回はサンプルプロジェクトをビルドして動かして見ようと思います。