宣言していた通り、Clojure+Leiningenでやや簡単にGAEアプリをつくれるようにしてみました。
blankプロジェクトはこちら。
Compojureは最新の0.4.0のスナップショットをjarに固めてClojarsにおきました。
leiningenのインストールがまだの場合はこちらを参考にインストールしてください。
Quick Start
Google App Engine SDKを用意していない場合はここからDLしてきてbinディレクトリをパスに追加してください。いまのところ1.3.1対応です(appengine-java-sdk-1.3.1.zip)
$ 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!」と出るはず。
あとはソースみていじってください。コードは数行しか書いてないから雰囲気でわかると思います。
注意
lein repl
でwar/WEB-INF/classes, libにパスが通っていないみたいなので、projectホームに、シンボリックリンクを貼った方が良いです。ln -s war/WEB-INF/classes
,ln -s war/WEB-INF/lib
。lein-swakを使う場合も同様。- ローカルサーバ立ち上げた後、コンパイルしてもサーバ再起動しないと反映されません(いまのところ)
- spinupに10秒くらいかかるのでちょっと遅いです。
- データストア用の関数はまだ用意していません。
- Compojure0.3.2と0.4.0は中身が別物。Ringに乗っとられた。CompojureとRingの話は今度記事書く。