joobyの開発環境をEclipseで構築する

# joobyとは？
一言でいうと **Java8** 以降にしか対応しないWeb Frameworkです。
詳細はこちらを読むと分かりやすいかと思います。
http://dev.classmethod.jp/server-side/framework-jooby-01/

# 前提条件
- 開発環境はWindows
- WindowsにはJava8がインストール済み
- EclipseがJava8で動作設定済み

## 開発環境を作ってみた
詳細は本家[QUICK START](http://jooby.org/quickstart/)の通りとなりますがMavenが必要となります。

> Install JDK 8+
> Install Maven 3+

※自分はローカルのWindowsにMavenをインストールしたくなかったので、Vagrantの共有ディレクトリ内で一旦環境を作成して
共有ディレクトリのソースをEclipseでインポートしています。そこらへんは各自のお好みでよいかと。

### ①必要なパッケージのインストール

```
[vagrant@localhost vagrant]$ sudo yum install -y java-1.8.0-openjdk-devel maven

～～～

========================================================================================================================
 Package                                       Arch         Version                                 Repository     Size
========================================================================================================================
Installing:
 java-1.8.0-openjdk-devel                      x86_64       1:1.8.0.131-3.b12.el7_3                 updates       9.7 M
 maven                                         noarch       3.0.5-17.el7                            base          1.3 M

～～～

```

### ②mavenでプロジェクトディレクトリの作成（ここまででサーバ内での作業は終了）

```
[vagrant@localhost vagrant]$ cd /vagrant/
[vagrant@localhost vagrant]$ mvn archetype:generate -B -DgroupId=com.mycompany -DartifactId=my-app -Dversion=1.0-SNAPSHOT -DarchetypeArtifactId=jooby-archetype -DarchetypeGroupId=org.jooby -DarchetypeVersion=1.1.3

～～～
[INFO] ----------------------------------------------------------------------------
[INFO] Using following parameters for creating project from Archetype: jooby-archetype:1.1.3
[INFO] ----------------------------------------------------------------------------
[INFO] Parameter: groupId, Value: com.mycompany
[INFO] Parameter: artifactId, Value: my-app
[INFO] Parameter: version, Value: 1.0-SNAPSHOT
[INFO] Parameter: package, Value: com.mycompany
[INFO] Parameter: packageInPathFormat, Value: com/mycompany
[INFO] Parameter: package, Value: com.mycompany
[INFO] Parameter: version, Value: 1.0-SNAPSHOT
[INFO] Parameter: jooby-version, Value: 1.1.3
[INFO] Parameter: groupId, Value: com.mycompany
[INFO] Parameter: artifactId, Value: my-app
[INFO] Project created from Archetype in dir: /vagrant/my-app
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 47.030s
[INFO] Finished at: Fri Jul 14 07:57:50 JST 2017
[INFO] Final Memory: 14M/53M
[INFO] ------------------------------------------------------------------------
```

### ③Eclipseから上記共有ディレクトリのmavenプロジェクトをインポート
![eclipseイメージ](https://qiita-image-store.s3.amazonaws.com/0/70168/e2e47a1b-4422-d2b2-4009-f447a0784bc2.jpeg)

### ④Eclipseからmavenのjooby:runを実行
![クリップボード02.jpg](https://qiita-image-store.s3.amazonaws.com/0/70168/91796296-01b9-380a-32b6-336b26915432.jpeg)


```
>>> jooby:run[info|main]: Hotswap available on: [C:\work\tmp\vagrant\my-app]
>>> jooby:run[info|main]:   includes: [**/*.class;**/*.conf;**/*.properties;*.js;src/*.js]
>>> jooby:run[info|main]:   excludes: []
[2017-07-14 08:55:19,258]-[HotSwap] INFO  com.mycompany.App - [dev@netty]: Server started in 1388ms

  GET /    [*/*]     [*/*]    (/anonymous)

listening on:
  http://localhost:8080/
```

## 動作確認してみた
### ブラウザで **http://localhost:8080/** にアクセス
```
Hello World!
```
正常に動作しているようです。

### ソースを修正してHot Reloadされることを確認

```
[2017-07-14 09:03:44,466]-[HotswapScanner] INFO  com.mycompany.App - Stopped
[2017-07-14 09:03:45,403]-[HotSwap] INFO  com.mycompany.App - [dev@netty]: Server started in 791ms

  GET /    [*/*]     [*/*]    (/anonymous)

listening on:
  http://localhost:8080/
```
コンソール上には再起動された旨が表示されています。

### 再度ブラウザで **http://localhost:8080/** にアクセス
```
Hello World!!!!!!!!!!!
```
修正が反映されていることを確認できました。
ここまで確認出来れば、Eclipseで開発出来る情況になったのではないかと思います。

## 最後に
まだ日本語の情報が少ないですが、ちょっとこれから注目していきたい **Web Framework** ではないでしょうか。
次はGradleで動作確認出来るようにしてみます。