2.0からScalaに対応したWebアプリ開発の人気軽量フレームワーク「Play」について解説し、Webアプリの作り方を紹介する入門連載。今回は、さまざまなコマンドが使えるPlayコンソールの使い方と、Eclipse上でのPlayアプリのデバッグ方法を一から順に解説します
前回の記事「Play 2.0のアーキテクチャとディレクトリ構成の基礎知識」では、Playアプリの全体的なアーキテクチャ、ファイル構成、各ディレクトリの役割などについて紹介しました。
今回は、Playアプリの操作を行うPlayコンソールについての解説と、Playアプリ上でのデバッグ方法を紹介します。
第1回記事では、「eclipsify」コマンドを使ってPlayアプリケーションをEclipseプロジェクト化し、Eclipse上でソースファイルを編集しました。今後も本記事のサンプルコードは、Eclipseで編集していきますので、まだセットアップができていない場合は第1回記事を参照してEclipseをセットアップしてください。
また、今回は第2回記事で作成した「gyro」プロジェクトをベースに解説を行いますので、本記事の通りに進める場合は、前回の記事を参考にPlayプロジェクトを作成しておいてください。
以前の連載から何度か使っていますが、作成したPlayアプリのディレクトリ内で「play」コマンドを入力すると、Playコンソールが使えます。
Playコンソールは、Scalaのビルドツール「sbt(Simple Build Tool)」をベースとした開発用のコンソールで、Playアプリの開発やビルドを対話的に行うことをサポートします。
これを使うと、IDE/エディタでソースを修正しながらコンソールでビルドやテストを実行、そしてWebブラウザで実際の画面を確認といった具合に、素早い修正・テスト・動作確認が可能です。
ではgyroディレクトリ内でPlayコンソールを起動してみましょう。
% cd gyro % play [info] Loading project definition from /path/your/gyro/project [info] Set current project to gyro (in build file:/path/your/gyro) _ _ _ __ | | __ _ _ _| | | '_ \| |/ _' | || |_| | __/|_|\____|\__ (_) |_| |__/ play! 2.0.4, http://www.playframework.org > Type "help play" or "license" for more information. > Type "exit" or use Ctrl+D to leave this console. [gyro] $
この状態で「exit」と入力するか[Control]+[D]キーを入力すると、Playコンソールを停止できます。また、「run」コマンドを使ってPlayアプリを実行している場合、[Control]+[D]キーを入力するとアプリを停止してPlayコンソールに戻ることができます。
Playコンソールではいろいろなコマンドが使えます。連載第1回や第2回で、「run」「test」コマンドを使いました。これ以外にもいろいろなコマンドがあります。
例えば、アプリの起動でなくコンパイルを実行するためには下記の「compile」コマンドを実行します(※[tab]キーで補完も可能です)。
[gyro] $ compile
「console」コマンドを使えば、PlayコンソールからScalaのREPLを使い、Playアプリのコードを動かせます。
[gyro] $ console scala >
通常のREPLと違い、Play関連のクラスパスと自分のアプリのクラスパスが設定された状態になります(「:cp」コマンドを実行すると、設定されているクラスパスが表示されます)。そのため、下記のようにScalaテンプレートを呼び出し、ビューも確認できます。
scala> views.html.index.render("Hello Play from play console") res2: play.api.templates.Html = <!DOCTYPE html> : : </html>
サーバを起動していないにもかかわらず、ビューの動作が確認できました。サーバ上でアプリを動かさなくても、Playアプリのビュー部分をテストすることも可能です。
Playコンソールでよく使うコマンドを紹介します。
Playアプリを起動します。なお、通常のコンソールから起動したい場合は下記のように「play run」と入力します。
% play run
アプリケーションを停止するときは[Control]+[D]キーを入力してください。
このコマンドもPlayアプリを起動するコマンドですが、「run」とは違いバックグラウンドで起動します。こちらも「play start」と通常のコンソールから入力すれば直接使えます。
ソースファイルのコンパイルを行います。playはソースファイルの修正後にアクセスするとその時点で再コンパイルが実行されるので、あまり使うことはないかもしれませんが、サーバが起動していなくても任意のタイミングでコンパイル可能です。
「test」ディレクトリ以下においてあるすべてのテストクラスを実行します。現在のgyroプロジェクトではテストクラスがないので実行はされませんが、テストクラスがある場合、テストが実行されて結果がコンソールに出力されます。
[gyro] $ test [info] No tests to run for test:test [success] Total time: 0 s, completed 2012/12/09 17:41:10
また、「test-only」コマンドを使った場合、引数としてテストクラス名を指定すればそのテストだけが実行されます。
このコマンドも本連載で何度か使ってきました。playプロジェクトをEclipseプロジェクト化します。「with-source」オプションをtrueにすれば、playのソースも併せて設定されます。
[gyro] $ eclipsify with-source=true [info] About to create Eclipse project files for your project(s). [info] Successfully created Eclipse project files for project(s):
ちなみに、IntelliJを使う場合は、「idea」コマンド、NetBeansを使う場合は「netbeans」コマンドを使えば、Playアプリを各IDEで開発可能になります。
ビルド時に作成されたソースやタスクキャッシュ、クラスファイルなどを削除します。
Build.scalaやplugins.sbtを修正してプロジェクトの設定を変更した場合、設定を読み込み直します。
依存ライブラリの更新をチェックし、必要に応じてライブラリのダウンロード、設定を行います。Build.scalaで依存ライブラリを追加/変更した場合、このコマンドを実行して依存関係の更新を行ってください。
Copyright © ITmedia, Inc. All Rights Reserved.