Google App Engineで必要な設定ファイル
次にGoogle App Engineで必要な設定ファイルを用意します。作成されたczeventengineディレクトリ以下の、「src/main/webapp/WEB-INF」にappengine-web.xmlというファイル名で、以下の内容のファイルを作成します。
<?xml version="1.0" encoding="utf-8"?>
<appengine-web-app xmlns="http://appengine.google.com/ns/1.0">
<application>czeventengine</application> *1
<version>1</version>
<system-properties>
<property name="in.gae.j" value="true" /> *2
</system-properties>
<sessions-enabled>true</sessions-enabled> *3
<static-files>
<include path="/**.css" />
<exclude path="/**.html" />
</static-files> *4
</appengine-web-app>
ファイルの内容について解説します。
*1では作成するアプリケーション名を指定します。もし、作成したアプリケーションをGoogle App Engineにデプロイする場合には、このアプリケーション名をGoogle App Engineの管理画面で作成したアプリケーション名と合わせておく必要があります。ここで指定されているczeventengineというアプリケーション名は、既に筆者が使用していますので、適宜別なアプリケーション名に指定し直してください。
*2のプロパティ設定は、LiftがGoogle App Engine上で動作することを指定するための設定です。この指定を行うことで、LiftはGoogle App Engine上での制約に合わせた振る舞いをするようになります。
*3は、Google App EngineでHttpセッションを使用するかの指定です。LiftはHttpセッションの使用を前提とするフレームワークのため、ここではtrueを指定します。
*4は、src/main/webappディレクトリ内で、静的なファイルとして扱いたいものをincludeタグで、そうでないものをexcludeタグで指定します。Liftの場合は、テンプレート用のhtmlファイルを静的なファイルとして扱われるとSnippetが動作しないため、excludeで除外しています。cssファイルは、明示的に静的なファイルとして指定しています。もし、作成するアプリケーションが画像ファイルなどを含む場合は、ここでincludeに含まれるようにあらかじめ指定しておく必要があります。
mavenのpom.xmlの編集
作成したばかりの状態では、Google App EngineのAPIを利用するjarファイルが含まれていないため、Google App EngineのAPIを利用したアプリケーションはコンパイルエラーとなります。ここで、プロジェクトディレクトリ内のpom.xmlを修正し、Google App EngineのSDKをクラスパスに含めるように編集します。
まず、pom.xml内の<repositories>タグに、SDKを配付しているMavenリポジトリを追加します。リスト3のように、<repositories>タグ内に太字で指定されている部分を追加してください。
ここでは、Seasar Foundationで提供されているMavenリポジトリを使用します。Seasar FoundationのMavenリポジトリは、SDKがバージョンアップされるたびに、最新バージョンが追加されますので、今後のSDKのバージョンアップにも対応できるでしょう。
<repositories>
<repository>
<id>scala-tools.org</id>
<name>Scala-Tools Maven2 Repository</name>
<url>http://scala-tools.org/repo-releases</url>
</repository>
<repository>
<id>maven.seasar.org</id>
<name>The Seasar Foundation Maven2 Repository</name>
<url>http://maven.seasar.org/maven2</url>
</repository>
</repositories>
次に、依存関係のjarファイルに、Google App EngineのSDKのjarファイルを追加します。<dependencies>タグ内の最後に、リスト4で太字に指定されている部分を追加してください。
<dependencies>
…中略
<!-- appengine sdk -->
<dependency>
<groupId>com.google.appengine</groupId>
<artifactId>appengine-api-1.0-sdk</artifactId>
<version>1.3.1</version>
</dependency> <dependency> <groupId>com.google.appengine</groupId> <artifactId>appengine-api-labs</artifactId> <version>1.3.1</version> </dependency>
</dependencies>
以上で、pom.xmlの修正は完了です。これで、mavenコマンドでのビルドができるようになりました。
