Eclipseでプロジェクトを作成する
では、準備が整ったところでEclipseを起動し、プロジェクトを作成しましょう。プラグインがインストールされていると、「Google」というフォルダに[Web Application Project]という項目が追加されます。これを選んでプロジェクトを作成してください。

プロジェクト作成の設定画面では、プロジェクト名として「gae_app」とつけておきましょう。パッケージ名も同様に「gae_app」と指定してください。また「Google SDKs」という設定では、[Use Google Web Toolkit]をOFFに、[Use Google App Engine]をONに、それぞれ設定してください。このプラグインは、GAEだけでなく、GoogleのAjax開発フレームワーク「GWT」の開発も行えるようになっています。今回はGWTは使わず、GAEのみを利用しますので、このように設定しておきます。
これで「gae_app」というプロジェクトが作成されました。しかし、これはあくまで「JavaによるGAEアプリケーション開発」のプロジェクトなので、Groovyは含まれていません。そこで、「war」フォルダ(これが実際にデプロイされるディレクトリとなります)内にある「WEB-INF」内の「lib」内に、Groovyのプログラムを入れておきましょう。
Grailsがインストールされているフォルダ内の「lib」内に「groovy-all-1.6.x.jar」というJarファイルがあります。これはGroovyの本体および必要なライブラリ一式をまとめたもので、このファイルをプロジェクトのwar/WEB-INF/lib内にコピーすれば、Groovyが利用可能になります。
Groovyのビルドファイルの作成
続いて、Groovyのプログラムをビルドするスクリプトファイルを作成します。このプロジェクトは、あくまで「JavaによるGAEアプリケーション」を作成するものなので、そのままEclipseでビルドしてもGroovyのスクリプトがビルドされるわけではありません。面倒ですが、別途用意しておきましょう。
プロジェクト内に「build.groovy」というファイルを作成し、次のように記述してください。
def ant = new AntBuilder().sequential {
taskdef name:"groovyc", classname:"org.codehaus.groovy.ant.Groovyc"
groovyc srcdir:"src", destdir:"war/WEB-INF/classes",{
classpath {
fileset dir:"war/WEB-INF/lib",{ include name: "*.jar" }
pathelement path:"war/WEB-INF/classes"
}
javac source: "1.5", target: "1.5", debug: "on"
}
}
これで、ビルドスクリプトができました。このスクリプトは、コマンドプロンプトから実行して利用します。コマンドプロンプトを起動し、このプロジェクトのフォルダにカレントディレクトリを移動して、
groovy build
このように実行すると、GroovyのスクリプトファイルをJavaクラスファイルへとコンパイルし、所定の場所へと保存します。以後、プロジェクトを実行したりデプロイする際には、面倒ですが必ずこれでビルドを行うようにしてください。
サーブレットを作る
では、Groovyのスクリプトを使ってサーブレットを作成してみましょう。「src」フォルダの中に「HelloServlet.groovy」ファイルを作成し、次のように記述をしましょう。
import javax.servlet.http.*
class HelloServlet extends HttpServlet {
void doGet(HttpServletRequest request, HttpServletResponse response)
throws IOException {
response.contentType = "text/html"
response.setCharacterEncoding("UTF-8")
response.writer.println "<html>"
response.writer.println "<head><title>Hello</title></head>"
response.writer.println "<body><h3>Welcome to Groovy!</h3></body>"
response.writer.println "</html>"
}
}
続いて、WEB-INF内にあるweb.xmlを開き、<web-app>タグ内に次のように追記してサーブレットを登録します。
<servlet> <servlet-name>HelloServlet</servlet-name> <servlet-class>HelloServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>HelloServlet</servlet-name> <url-pattern>/hello</url-pattern> </servlet-mapping>
さあ、これでできあがりです。コマンドプロンプトを起動し、プロジェクトのディレクトリに移動してからプロジェクトのビルドを行い、GAE SDKに用意されている開発用サーバを使ってローカル環境でアプリケーションを実行してみましょう。
Eclipseの[実行]メニューから[実行]のサブメニューにある[Webアプリケーション]を選んでください。これで、GAEに内蔵されているJettyサーバによりプロジェクトがデプロイされます。Webブラウザから「http://localhost:8080/hello」にアクセスしてください。作成したHelloServletが実行され、「Welcome to Groovy!」と表示されます。

この開発用サーバでの公開は、Eclipseを使わず、コマンドプロンプトからでも行えます。コマンドプロンプトでカレントディレクトリをプロジェクトフォルダに移動し、次のように実行してください。
dev_appserver war/
ただし、この後に登場するGroovletやGSPといった機能は、dev_appserverコマンドではうまく動いてくれません。これらはEclipseから起動する必要があります。特に理由がない限り「Eclipse上から開発用サーバで実行するのが基本」と考えた方がよいでしょう。

