お好みの IDE を設定しよう
Play と共に作業することは簡単です。Play が自動的にソースファイルに加えられた変更をコンパイルしてリフレッシュするので、高性能な IDE は必要ありません。シンプルなテキストエディタを使って簡単に作業することができます。
とは言え、近頃の Java IDE は自動補完、逐次コンパイル、リファクタリングやデバッグのアシストと言ったクールで生産的な機能を提供します。Play は Netbeans, IntelliJ IDEA と Eclipse プラットフォームをサポートします。
Eclipse
設定ファイルの生成
Play は Eclipse の設定を簡易化するコマンドを提供しています。Play アプリケーションを動作する Eclipse プロジェクトに変換するには、 eclipsify
コマンドを使用してください:
# play eclipsify myApp
その後、 File/Import/General/Existing project... メニューから Workspace にアプリケーションをインポートする必要があります。
classpath の変更のような重要な変更をアプリケーションへ加えるときは、設定ファイルを再生成するために eclipsify
を再度実行します。
チームで作業しているときは Eclipse 設定ファイルをコミットしないこと!
生成した設定ファイルにはフレームワークをインストールした場所への絶対参照が含まれています。これはあなた自身のインストール作業に特化したものです。チームで作業するときは、それぞれの開発者は自分の Eclipse 設定ファイルを個人で管理しなければなりません。
ランチャ
eclipsify
コマンドはアプリケーション用にいくつかのランチャを生成します。例えば、 Nice app と呼ばれるアプリケーション (上記スクリーンショット参照) 上で eclipsify
を実行すると、@eclipse/@ folder 内に以下のランチャを作成します:
Nice app.launch
- 右クリックから Run As > Nice app を選択することでアプリケーションを実行するために使用できる、play test
コマンドと等価なメインのランチャTest Nice app.launch
- やはり右クリックから Run As > Test Nice app を選択して実行する、play test
と等価なテストランチャConnect JPDA Nice app.launch
- ランチャファイルを右クリックして Debug As > Connect JPDA Nice app を選択することで、実行済みの Play インスタンスに対するEclipse デバッガに接続し、デバッグセッションを開始する JPDA デバッグセッションコネクタです。デバッグセッションを停止してもサーバは停止されません。
Play Eclipse プラグイン
更に、Play には HTML ビューテンプレート、 application.conf
そして routes
ファイル用のエディタを提供する Eclipse プラグインが含まれています。
プラグインをインストールするには、 $PLAY_HOME/support/eclipse
から $ECLIPSE_HOME/dropins
に JAR ファイルをコピーします。
NetBeans
Play は Netbeans の設定を簡易化するコマンドを提供しています。既存のアプリケーションを妥当な Netbeans プロジェクトに変換するには、 netbeansify
コマンドを使用してください:
# play netbeansify myApp
その後は、そのアプリケーションをそのまま Netbeans プロジェクトとして開くことができます。
アプリケーションを開始するには、標準の Run ボタンを使用してください。アプリケーションが起動されていれば、いつでも Debug ボタンを使ってデバッグセッションをアタッチすることができます。デバッグセッションを終了してもサーバは止まりません。
classpath の変更のような重要な変更をアプリケーションへ加えるときは、設定ファイルを再生成するために netbeansify
を再度実行します。
チームで作業しているときは nbproject/
ディレクトリをコミットしないこと!
生成した設定ファイルにはフレームワークをインストールした場所への絶対参照が含まれています。これはあなた自身のインストール作業に特化したものです。チームで作業するときは、それぞれの開発者は自分の Netbeans 設定ファイルを個人で管理しなければなりません。
IntelliJ IDEA
Play は IntelliJ IDEA の設定を簡易化するコマンドを提供しています。既存のアプリケーションを妥当な IntelliJ IDEA モジュールに変換するには、 idealize
コマンドを使用してください:
# play idealize myApp
単一モジュールプロジェクトを作成する場合は、IntelliJ IDEA にて以下を実行してください。
- コマンドラインから
play new
コマンドを使って Play プロジェクトを作成する。 - コマンドラインから
play idealize
コマンドを使って IntelliJ IDEA モジュールを作成する。 - IntelliJ IDEA の File メニューから Open Project… を選択して、生成された
.ipr
ファイルを選択する。
実行設定を追加するには:
- IntelliJ IDEA の Run メニューから Edit Configurations を選択する。
- Defaults 内の Application で右クリックし、 Add New Configuration を選択する。
- Main class 内に
play.server.Server
を入力する。 - VM parameters 内に
-Dapplication.path="."
を入力する。 - Working directory 内にアプリケーションパスを入力する。
- Before launch 内に
Make
が存在していたら削除する。
IntelliJ において Play をテストモードで実行するには:
- 実行設定を編集し、 VM parameters に -Dplay.id=test を追加する。
- モジュールを右クリックして Open Module Settings を選択する。
- Dependencies タブを選択する。
- Add… をクリックして Single-Entry Module Library を選択する。
$PLAY_HOME/modules/testrunner/lib/play-testrunner.jar
を選択して OK をクリックする。
チームで作業しているときは .iml ファイルをコミットしないこと!
生成した設定ファイルにはフレームワークをインストールした場所への絶対参照が含まれています。これはあなた自身のインストール作業に特化したものです。チームで作業するときは、それぞれの開発者は自分の IntelliJ IDEA 設定ファイルを個人で管理しなければなりません。
Textmate
シンタックスハイライトと自動補完を有効にするために $PLAY_HOME/support/textmate.zip
にある Textmate バンドルをインストールします。このバンドルはコントローラとビューの行き来も容易にします。
Vim
Textmate に影響された snipMate プラグインは、 Vim にキーワード自動補完を提供します。Play は HTML と Java のスニペットファイルを提供しています: これらを使用するためには、snipMate をインストールして $PLAY_HOME/support/vim/*.snippets
を ~/.vim/snippets/
にコピーします。
カスタム設定
Play アプリケーションは標準的な Java アプリケーションであり、お好みのエディタを使って作業をするために特定のプラグインも必要としません。ただし、その場合は Play がどのように動作しているかについて、ほんのちょっとの知識を必要とします:
Classpath 設定
Play アプリケーションのクラスパスは以下の通り (この順で) 構築されます:
- アプリケーションの
conf/
ディレクトリ - The
$PLAY_PATH/framework/play-$version.jar
lib/
ディレクトリ内のすべての JAR ファイル$PLAY_PATH/framework/lib/
ディレクトリ内のすべての JAR ファイル
Tip
モジュールを利用する場合は、すべてのモジュールライブラリも同様に ( $module/lib/
ディレクトリから) クラスパスに追加する必要があります。 からモジュールライブラリをクラスパスに追加する必要があります。
実行する Main クラス
Play アプリケーションを開始するには、 play.server.Server
クラスを実行するだけです。Play は実行するアプリケーションの場所を見つけるために "application.path"
システムプロパティを使用します。通常、以下のようにしてこの値を渡します:
java -Dapplication.path="/app/path"…
Java エージェント
HotSwap リロードを有効にするためには、Java agent を play.jar
ライブラリに組み込む必要があります。通常は以下のようにします:
java -javaagent:"$PLAY_PATH/framework/play.jar" …
これは必須ではありませんが、これが利用可能であるとき、クラスのリロードが高速になるでしょう。
デバッグ問題
Java ソースが変更されたとき、Play は自動的に Java クラスをリロードします。しかし、Java はクラスのリロードを完全にサポートしていないので、JDPA デバッグは簡単に混乱します: コードをステップインしたときに、ブレークポイントの設定に失敗したり、デバッガが間違った行で止まるかもしれません。
これを避けるよりよい方法は、コードを変更した後にデバッグセッションを新規に開始することです。幸運なことに、JPDA は JVM を再起動することなく、いつでもデバッガを接続したり、切断することができます。
以上より、デバッグにおける正しいワークフローは次のようになります:
- ソースコードを変更します。
- 結果を見るためにブラウザをリフレッシュします。 (このとき Play は変更内容をリロードして JVM 上のクラスを再定義します)
- 何かがおかしくデバッグする必要がある場合は、新しいデバッグセッションを開始します。
- コードをデバッグして、修正します。
- デバッガを切断します。
このワークフローを使用することによって、JVM にロードされたコードとデバッガを常に同期させることができます。
次は: 'Hello World' チュートリアル です。