上記の組み合わせで動かしてみる。
Eclipse 4.4(Luna)で利用できるMilestone(正式リリース前の評価版)を今回は利用してみました。新しいもの好きなので・・・。
Eclipse
Eclipse Luna(4.4)を落とします。→Eclipse
Scala IDE
Eclipseのプラグインとして提供されます。(同封版もあり)→Scala IDE (Milestone)
Eclipse上からプラグインとしてインストールしてください。いくつかプラグインが出てきますが、まあソース以外全部インストールしておけば間違いないでしょう。
Typesafe Activator
ダウンロードして解凍します。→Typesafe Activator
activator.bat(Windowsの場合)もしくはactivator(Linux等の場合)にパスが通っていた方が便利な気がするので通しましょう。
サンプルプロジェクトを作る
下記のコマンドを打ちます。Eclipseのworkspace内に作るのが良いでしょう。今回はplay-scala-quickstartを取ってみました。
$ activator new Fetching the latest list of templates... Browse the list of templates: http://typesafe.com/activator/templates Choose from these featured templates or enter a template name: 1) minimal-java 2) minimal-scala 3) play-java 4) play-scala (hit tab to see a list of all templates) > play-slick-quickstart Enter a name for your application (just press enter for 'play-slick-quickstart') > slick OK, application "slick" is being created using the "play-slick-quickstart" templ ate.
サンプルプロジェクトをEclipseプロジェクトに変換する
下記コマンドを打ちます。
$ cd [プロジェクトのフォルダ] $ activator eclipse
Activatorでplayコマンドを打つ場合は、だいたいplayをactivatorに置き換えてあげると良いみたいです。また、eclipseプロジェクトを作るのは以前はeclipsifyコマンドだったようですが、いつのバージョンからかeclipseになっていました。まあ、eclipsifyとか言いたいことは分かるけどeclipfy?eclipify?だっけ?とかコマンドが思い出せないのでeclipseで良いと思います。
Eclipseからプロジェクトをインポート
Package Explorerを右クリックしてImportを選びます。
Existing~をクリック。
さっきのプロジェクトフォルダを選び、Finishを押します。
バージョンを合わせる
importが完了してプロジェクトを開くと、いきなり多数のエラーが出て居ます。
IDEで指定されているScalaのバージョンが2.11ですがプロジェクトで指定されているscalaのターゲットが2.10になっているからのようです。どっちかに合わせましょう。今回は「新しいが正義」ということで、Scala2.11で動くようにbuild.sbtのバージョンを書き換えました。
play-slickのライブラリバージョンは以下の組み合わせだと良いみたいです。
Plugin version | Play version | Slick version | Scala version |
---|---|---|---|
0.4.x | 2.1.x | 1.0.x | 2.10.x |
0.5.x | 2.2.x | 1.0.x | 2.10.x |
0.6.x | 2.2.x | 2.0.x | 2.10.x |
0.7.x | 2.3.x | 2.0.x | 2.10.x |
0.8.x | 2.3.x | 2.1.x | 2.10.x/2.11.x |
0.9.x (milestone) | 2.4.x | 2.1.x | 2.10.x/2.11.x |
table from play-slick
直したbuild.sbtはこちら。
name := """slick""" version := "1.0-SNAPSHOT" scalaVersion := "2.11.2" libraryDependencies ++= Seq( "org.webjars" %% "webjars-play" % "2.3.0-2", "com.typesafe.play" %% "play-slick" % "0.8.0" ) fork in Test := false lazy val root = (project in file(".")).enablePlugins(PlayScala)
直したら以下コマンドを打って依存性解決&コンパイルしておきましょう。また、参照ライブラリ等も変わるのでもう一度eclipseし、プロジェクトをEclipseから開きなおします。
$ activator compile $ activator eclipse
コンパイルする
Eclipseからビルドすると普通にコンパイルできます。
もし、views.html下の名前解決に失敗する場合は、下記のRefresh ~というところにチェックを入れると直る…と思います。多分。色々やっている間に直ったので正直良くわかりません。
開発してみよう
じゃあ簡単に開発してみましょう。まずアプリケーションを起動しておきます。
$ activator run
ブラウザでhttp://localhost:9000/にアクセスすると下記のようになるのでApply this script now!します。このサンプルプロジェクトではH2をインメモリで使っているので、playを起動するたびこれが出てきます。
するとこうなります。猫DBですね。ネコを追加すると下に表示されます。
じゃあコイツが猫の年齢も記憶できるよう変更してみましょう。詳しいコードの変更箇所はこちらの記事をご覧ください。
Viewを書くときにちゃんとコード補完してくれます。えらい。
保存すると片っ端からEclipseがコンパイルしてくれます。コンパイルされたら勝手にデプロイされます。
ブラウザをリロードするともうできてる。すごい!偉い!