SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Google App Engine/JavaによるScala/Liftアプリケーション開発

Google App Engine/JavaによるScala/Liftアプリケーション開発(前編)

Liftアプリケーション開発の基本とDataStoreの利用

Google App Engineで必要な設定ファイル

 次にGoogle App Engineで必要な設定ファイルを用意します。作成されたczeventengineディレクトリ以下の、「src/main/webapp/WEB-INF」にappengine-web.xmlというファイル名で、以下の内容のファイルを作成します。

[リスト3]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のバージョンアップにも対応できるでしょう。

[リスト4]pom.xmlへのリポジトリの追加
  <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で太字に指定されている部分を追加してください。

[リスト5]pom.xmlへのSDKのjarファイルの追加
  <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コマンドでのビルドができるようになりました。

次のページ
プロトタイプの作成

この記事は参考になりましたか?

Google App Engine/JavaによるScala/Liftアプリケーション開発連載記事一覧
この記事の著者

山田 祥寛(ヤマダ ヨシヒロ)

静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるLaravel実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

WINGSプロジェクト 尾崎 智仁(オザキ トモヒト)

WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。 2026年時点での登録メンバは約50名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書記事多数。 RSS X: @WingsPro_info(公式)、@WingsPro_info/wings(メンバーリスト) Facebook

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/5004 2010/04/16 14:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー