joobyとは?
一言でいうと Java8 以降にしか対応しないWeb Frameworkです。
詳細はこちらを読むと分かりやすいかと思います。
http://dev.classmethod.jp/server-side/framework-jooby-01/
前提条件
- 開発環境はWindows
- WindowsにはJava8がインストール済み
- EclipseがJava8で動作設定済み
開発環境を作ってみた
詳細は本家QUICK STARTの通りとなりますが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からmavenのjooby:runを実行
>>> 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で動作確認出来るようにしてみます。