Google App Engine / Java の開発では Eclipse が必須のような扱いですが、 HTML / JavaScript / CSS を書き換えて表示を確認したいだけの場合には面倒に感じます。 SDK をインストールすると、コマンドラインツールを使って開発用サーバを立ち上げることができます。 Eclipse を起動する必要がありませんので、マシンのメモリ使用量を抑えられます。
手順は Google App Engine のページに記載されていますが、 しばらくすると存在自体を忘れてしまいそうなのでメモしておきます。
「プログラミング Google App Engine」の "2.1 SDK のセットアップ" の最後にある "Eclipse なしでの Java SDK のインストール" でも少しだけ触れられています。
手順
- appengine-java-sdk-1.4.2.zip をダウンロードする。 (ダウンロードページ)
- zip ファイルを展開したものを適当なディレクトリに移動させる。
- ターミナル / コマンドプロンプトなどを立ち上げ、Google App Engine / Java のプロジェクトのディレクトリに移動する。
- war ディレクトリを指定して、SDK のスクリプトを実行する。
やること
手元の環境では SDK を /usr/local/appengine-java-sdk-1.4.2 に移動させ、 バージョン番号を隠すようにシンボリックリンクを用意しました。 mv でも構わないと思いますが、複数の SDK を使えるようにしておくためには ln の方が良さそうです。 また、SDK のバージョンによって demos などが異なりますので、参照用に残しておくこともできます。
$ cd /usr/local $ sudo ln -s appengine-java-sdk-1.4.2 appengine-java-sdk
中身は次の構成になっています。
$ tree -d -L 2 /usr/local/appengine-java-sdk /usr/local/appengine-java-sdk |-- bin |-- config | |-- sdk | `-- user |-- demos | |-- guestbook | |-- helloorm | |-- helloxmpp | |-- jdoexamples | |-- mandelbrot | |-- mediastore | |-- new_project_template | |-- shardedcounter | |-- sticky | |-- taskengine | `-- taskqueueexamples |-- docs | |-- javadoc | |-- testing | `-- tools |-- lib | |-- agent | |-- impl | |-- shared | |-- testing | |-- tools | `-- user `-- src `-- orm 29 directories
bin ディレクトリには4つのスクリプトが用意されています。 .cmd は Windows 用、 .sh は Linux などのためですから、実質的には2種類のスクリプトです。
$ ls /usr/local/appengine-java-sdk/bin appcfg.cmd appcfg.sh* dev_appserver.cmd dev_appserver.sh*
開発用サーバを起動するスクリプトは dev_appserver で、引数には war ディレクトリを渡します。 ここではプロジェクトのディレクリに移動してあるものとして考えていますので war だけですが、 必要ならば絶対パスの方が間違いが少ないかもしれません。
$ /usr/local/appengine-java-sdk/bin/dev_appserver.sh war
スクリプトは -h オプションでヘルプが表示され、 -p オプションでポート番号を指定できます。 -a オプションでバインドするアドレスを指定できますので、他のマシンから表示を確認するためにも使えます。
$ /usr/local/appengine-java-sdk/bin/dev_appserver.sh -a 192.168.0.2 -p 8888 war
まとめ
コマンドラインから開発用サーバを立ち上げました。 まぁ、今どきそんなメモリ使用量を気にするようなマシンで開発するな、という話かもしれませんが、 たまにはそういうこともあります。たぶん。 あと、フロントエンドの開発者に Eclipse を強要しない、という点では良いと思います。 CI (Continuous Integration) との相性も良いでしょうね。
0 件のコメント:
コメントを投稿