S-JIS[2012-03-10/2012-05-03] 変更履歴
Play framework 2.0のインストールのメモ。
|
前提(たぶん): Scalaがインストールされていること。
Playはsbtを使用するが、必要になったときに自動的にダウンロード・インストールされるらしい。
参考: 新規アプリケーションを作成する
> cd /d D:\temp
> play new MyFirstApp
途中で聞かれる事 | 備考 | 例 |
---|---|---|
What is the application name? | アプリケーション名 | first application |
Which template do you want to use for this new
application? 1 - Create a simple Scala application 2 - Create a simple Java application 3 - Create an empty project |
雛形の種類 | 1 |
D:\temp\MyFirstApp
」が作られる。> cd MyFirstApp
> play
[first application] $
」
というプロンプトが表示される。[first application] $
run
〜
[info] play - Listening for HTTP on port 9000...
(Server started, use Ctrl+D to stop and go back to the console...)
http://localhost:9000
」を開くと、何か表示されるはず。[first application] $
exit
PlayのアプリケーションをEclipseへインポートする方法。
参考: 中村 修太さんのPlayframework 2.0 小技-Controllerなしでリダイレクト
> cd /d D:\temp\MyFirstApp
> play
[first application] $
eclipsify
[info] About to create Eclipse project files for your project(s).
[info] Successfully created Eclipse project files for project(s): first application
eclipsifyに「with-source=true」を付けると、jarファイルに対応する“ソースのjarファイル”もダウンロードされて、Eclipseからjarファイル内のクラスを参照したときにソースが見られるようになる。(ソースの添付がされた状態になる)
らしいのだが、Play2.0のplayコマンドで試してみると上手くいかなかった。[2012-04-28]
参考: Play2.0 eclipsify with-source=true
この場合、どうもソースのjarファイルをローカルのリポジトリーから探すようで、当然ダウンロードされていないから見つからないということらしい。
以下のような警告が出る。(ソースの添付はされない状態になるが、Eclipseの設定自体はちゃんと作られる)
> cd /d D:\temp\test1
D:\temp\test1> play
[test1] $ eclipsify with-source=true
〜
[warn] [NOT FOUND ] org.easytesting#fest-util;1.1.6!fest-util.jar(src) (0ms)
[warn] ==== local: tried
[warn] C:\scala\play-2.0\framework\..\repository/local/org.easytesting/fest-util/1.1.6/srcs/fest-util-sources.jar
[warn] [NOT FOUND ] org.easytesting#fest-util;1.1.6!fest-util.jar(doc) (0ms)
[warn] ==== local: tried
[warn] C:\scala\play-2.0\framework\..\repository/local/org.easytesting/fest-util/1.1.6/docs/fest-util-javadoc.jar
[warn] ::::::::::::::::::::::::::::::::::::::::::::::
[warn] :: FAILED DOWNLOADS ::
[warn] :: ^ see resolution messages for details ^ ::
[warn] ::::::::::::::::::::::::::::::::::::::::::::::
[warn] :: org.scala-lang#scala-library;2.9.1!scala-library.jar(src)
[warn] :: org.scala-lang#scala-library;2.9.1!scala-library.jar(doc)
[warn] :: play#play_2.9.1;2.0!play_2.9.1.jar(src)
[warn] :: play#play_2.9.1;2.0!play_2.9.1.jar(doc)
[warn] :: play#templates_2.9.1;2.0!templates_2.9.1.jar(src)
[warn] :: play#templates_2.9.1;2.0!templates_2.9.1.jar(doc)
〜
playコマンドを使わず、sbtコマンドを直接使えば大丈夫らしい。
sbtの環境を用意していない場合は作る必要がある。
Play2.0をインストールしていればsbtのjarファイルもダウンロードされているので、jarファイルを起動するバッチファイル(Windowsの場合)だけ作ればいい。
(参考: xsbt WikiのSetup)
- Play2.0をインストールしたディレクトリーに移動する。
- sbt.batというファイルを作り、中を以下の様に記述する。(sbt-launch.jarのパスはインストールした環境に応じて変更する)
java -Xmx512M -jar "C:\scala\play-2.0\framework\sbt\sbt-launch.jar" %*
> cd /d D:\temp\test1 D:\temp\test1> sbt [test1] $ eclipsify with-source=true
ソースのダウンロードに十数分かかるが、これで上手くいく。
(.classpath
ファイルの中を見ると、sourcepathの設定が増えているのが分かる)
sbtコマンドを使わず、ivysettings.xmlを設定する方法もあるらしい。(→Yasushiさんのplayのeclipsify with-source=true 対策)[2012-05-03]
<ivysettings> <caches useOrigin="true"/> <settings defaultResolver="play"/> <resolvers> <chain name="play"> <filesystem name="1"> <artifact pattern="C:/scala/play-2.0/repository/local/[organisation]/[module]/[revision]/[type]s/[artifact].[ext]" /> </filesystem> <url name="type-ivy-release"> <artifact pattern="http://repo.typesafe.com/typesafe/ivy-releases/[organization]/[module]/[revision]/[type]s/[artifact](-[classifier]).[ext]"/> </url> <ibiblio name="maven2" m2compatible="true"/> </chain> </resolvers> </ivysettings>
val main = PlayProject(appName, appVersion, appDependencies, mainLang = SCALA).settings(
// Add your own project settings here
externalIvySettings() ←追加
)
> cd /d D:\temp\test1 D:\temp\test1> sbt [test1] $ eclipsify with-source=true
再度設定をやり直したい場合は、クリーンする。
[test1] $ clean [test1] $ eclipsify with-source=true
既存Playあぷrケーションのバージョンを変えるには、plusgins.sbt内のsbt-pluginのバージョンを書き換える。(→ueshinさんのツイート)[2012-05-03]
// Use the Play sbt plugin for Play projects
addSbtPlugin("play" % "sbt-plugin" % "2.0.1") ←バージョンの数値を2.0から2.0.1に書き換える
そして、再度playコマンドを実行すればOK。
> play This project uses Play 2.0.1! Update the Play sbt-plugin version to 2.0 (usually in project/plugins.sbt)