Skinny Frameworkで作ったアプリをEclipseでインポートする。
やること
Skinny Frameworkを使用して作成したサンプルアプリをEclipseへインポート。
Skinny Frameworkとは?
Scala のフルスタックな Web アプリケーション開発フレームワークです。
2014/03/28 に1.0.0がリリースされたばかりとのこと。
キャッチコピーに「Scala on Rails」を掲げているとのことであり、
タイプセーフなRailsが実現できるのであれば、最も理想的なフレームワークなのではないかと個人的には思っています。
詳しくはこちらなど。
https://gist.github.com/seratch/7382298
やったこと
1. プロジェクトの作成
https://github.com/skinny-framework/skinny-framework/releases
より、skinny-blank-app.zipというファイルをダウンロードします。
今回最新バージョンは、1.0.9でした。こちらがプロジェクトの雛形となります。
zipファイルを任意のフォルダに展開します。
ここでは、C:\Scala\skinny\skinny-blank-appに展開しました。
2. サンプルの起動確認
プロジェクトを作成したフォルダをコマンドプロンプトで開きます。
(ここでは、C:\Scala\skinny\skinny-blank-app)
以下のコマンドを実行するとアプリが起動します。
skinny run
依存ライブラリのダウンロードなどを自動で行うようであり、
初回起動時は少し時間が掛かります。
>1. Waiting for source changes... (press enter to interrupt)
という表示が出ればアプリが起動しているようです。
デフォルトでローカルの8080ポートで起動しますので、
ブラウザで以下のURLにアクセスします。
以下のような画面が出れば成功です。
3. scaffoldによるCRUD機能生成
ここまでだと特に機能もなく、DBを使用することもないため、
scaffoldによるCRUD機能を生成します。
skinny g scaffold Books Book title:String author:String amount:Option[Int]
*** Skinny Generator Task ***
"src\main\scala\controller\ApplicationController.scala" skipped.
"src\main\scala\controller\BooksController.scala" created.
"src\main\scala\controller\Controllers.scala" modified.
"src\test\scala\controller\BooksControllerSpec.scala" created.
"src\test\scala\integrationtest\BooksController_IntegrationTestSpec.scala" created.
"src\test\resources\factories.conf" modified.
"src\main\scala\model\Book.scala" created.
"src\test\scala\model\BookSpec.scala" created.
"src\main\webapp\WEB-INF\views\books\_form.html.ssp" created.
"src\main\webapp\WEB-INF\views\books\new.html.ssp" created.
"src\main\webapp\WEB-INF\views\books\edit.html.ssp" created.
"src\main\webapp\WEB-INF\views\books\index.html.ssp" created.
"src\main\webapp\WEB-INF\views\books\show.html.ssp" created.
"src\main\resources\messages.conf" modified.
"src\main\resources\db\migration\V20140429222552__Create_books_table.sql" created.[success] Total time: 1 s, completed 2014/04/29 22:25:52
最終的に上記のようなファイルが生成されます。
続いてテーブル作成のため、以下のコマンドを実行します。
skinny db:migrate
db\development.mv.dbというデータベースの実体ファイルが生成されました。
ここまでのscaffoldの流れは、Railsと同じですね。
改めてskinny runを実行し動作確認します。
http://localhost:8080/books
にアクセスすると以下のような画面が表示されると思います。
ここでは省略しますが、Newボタンを押下することで登録画面が表示され
Bookの登録・更新・削除ひととおりの機能が実装されています。
4. Eclipseへのインポート
本題となります。
Skinny Frameworkのプロジェクトは、sbtでプロジェクトを管理しているようですので、
sbteclipseが使えます。
https://github.com/typesafehub/sbteclipse
まずは、project/plugins.sbtに以下の行を追加します。(末尾に追記すればよいです)
addSbtPlugin("com.typesafe.sbteclipse" % "sbteclipse-plugin" % "2.4.0")
その後以下のコマンドを実行し、Eclipseのプロジェクトファイルを生成します。
sbt
これにてEclipseでインポートできるようになります。