The Dragon Scroll

Be just and fear not.

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を設定。

Create Grails-App

雛形の作成。

grails create-app first-app
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に対応する戦略は、フレームワークとして正しい。