---
title: Clojure+LeiningenでGoogle App Engineアプリ作成!
tags: []
categories: ["Programming", "Lisp", "Clojure", "Leiningen"]
date: 2010-03-21T21:15:56Z
updated: 2010-03-21T21:31:06Z
---

<p>
宣言していた通り、Clojure+Leiningenでやや簡単にGAEアプリをつくれるようにしてみました。<br/>
blankプロジェクトは<a href="http://bit.ly/dzoc7e">こちら</a>。<br />
Compojureは最新の0.4.0のスナップショットをjarに固めて<a href="http://clojars.org/org.clojars.making/compojure">Clojars</a>におきました。<br />
leiningenのインストールがまだの場合は<a href="http://bit.ly/cQixmC">こちら</a>を参考にインストールしてください。
</p>
<h3>Quick Start</h3>
<p>Google App Engine SDKを用意していない場合は<a href="http://code.google.com/intl/ja/appengine/downloads.html">ここ</a>からDLしてきてbinディレクトリをパスに追加してください。いまのところ1.3.1対応です(appengine-java-sdk-1.3.1.zip)</p>
<pre class="prettyprint">
$ git clone git://github.com/making/clj-gae-blank.git
$ cd clj-gae-blank
$ lein compile
# 開発版サーバ起動
$ dev_appserver war # -> http://localhost:8080/にアクセスすると「Hello!」と出るはず。
# 本番環境へデプロイ
$ vi war/WEB-INF/appengine-web.xml # applicationタグ内に自分のAPPIDを記入
$ appcfg.sh update war # -> http://APPID.appspot.com/にアクセスすると「Hello!」と出るはず。
</pre>
<p>
あとはソースみていじってください。コードは数行しか書いてないから雰囲気でわかると思います。
</p>
<h3>注意</h3>
<ul>
<li><code>lein repl</code>でwar/WEB-INF/classes, libにパスが通っていないみたいなので、projectホームに、シンボリックリンクを貼った方が良いです。<code>ln -s war/WEB-INF/classes</code>,<code>ln -s war/WEB-INF/lib</code>。lein-swakを使う場合も同様。</li>
<li>ローカルサーバ立ち上げた後、コンパイルしてもサーバ再起動しないと反映されません（いまのところ）</li>
<li>spinupに10秒くらいかかるのでちょっと遅いです。</li>
<li>データストア用の関数はまだ用意していません。</li>
<li>Compojure0.3.2と0.4.0は中身が別物。<a href="http://github.com/mmcgrana/ring">Ring</a>に乗っとられた。CompojureとRingの話は今度記事書く。</li>
</ul>
