Grails1.1.1をGAE/Jへデプロイする
Grailsがバージョン1.1.1でGAE/Jに対応したということなので、早速試してみる。
このとおりに進める。
Get Grails-1.1.1
まずは、grails-1.1.1を落としてくる。
http://www.grails.org/Download
Path、GRAILS_HOMEの書き換えを忘れずに。
AppEngineのSDKはこちらから落とせる。
SDKのディレクトリに対して環境変数APPENGINE_HOMEを設定。
Set GAE application idenfier.
Config.groovyにGAEアプリのIDを設定する。
http://appengine.google.com/で、Create Applicationしておく。
google.appengine.application="アプリのID"
Uninstall Plugin, Install Plugin
Hibernateを削除
grails uninstallPlugin hibernate
AppEngineプラグインをインストール。
grails installPlugin app-engine
Run application
grails app-engine run
これは、ローカル環境でGAEアプリを動かすコマンド。
AppEngineプラグインのAppEngine.groovyが呼び出されている。
このスクリプトの中で、antタスクを実行している。
Antファイルは、%APPENGINE_HOME%/config/user/ant-macros.xml
Deploy application
GAE環境へのデプロイ。
grails set-version 1 grails app-engine package %APPENGINE_HOME%/bin/appcfg update ./target/war
appcfg updateのところで、XML文書の検証に失敗する。
Reading application configuration data... Bad configuration: XML error validating .\target\war\WEB-INF\datastore-indexes.xml against C:\appengine-java-sdk-1.2.1\docs\datastore-indexes.xsd Caused by: cvc-elt.1: Cannot find the declaration of element 'datastore-indexes'.
DataStoreは使わないので、datastore-indexes.xmlを削除。
再実施で、GAE環境へのデプロイに成功する。
というわけで、Grails1.1.1だと、簡単に、GAE/J上にアプリケーションを載せることができる。
GAE/J環境向けにカスタマイズされたフレームワークが、まだ無いことを考えると、
(いつ出てきてもおかしくない状況ではありますが)Grailsは、良い選択肢になるかもしれない。
Groovyも使えるしね。
GAE/Jに対応する戦略は、フレームワークとして正しい。