Compojure, Leiningenのインストール

CompojureはClojure製のWebフレームワークです。

インストール

Conpojureを使うには、

  • Compojureが依存するライブラリのjarを用意する事
  • Compojure自身のjarを生成する事

が必要です。
それには分かった名前のClojure製ビルドシステム、"Leiningen"を使います。

ClojureのzipCompojureのzipleiningenのzipと、standaloneのjarをダウンロードし、zipを適当な場所に解凍します。

clojure.jar
│  leiningen-1.1.0-standalone.jar
│
├─compojure
└─leiningen
    ├─bin
    │      lein
    │      lein.bat
    ├─sample
    ├─src
    └─test

コマンドプロンプトでCompojureのフォルダに移動し、Leiningenを実行します。
Leiningen\bin\leinには、自動でclojureやLeiningenのjarをインストールする機能があるのですが、Windowsでは使えないので、手動でclojure.jarやleiningen-1.1.0-standalone.jarをダウンロードして、環境変数をセットする必要があります。
"lein deps"で依存するjarを、libフォルダの中にダウンロード、
"lein jar" でcompojure.jarの生成を行います。

$>cd D:\Owner\temp\compojure

$>set lein_jar=..\leiningen-1.1.0-standalone.jar

$>set clojure_jar=..\clojure-1.1.0\clojure.jar

$>..\leiningen\bin\lein.bat deps
 [copy] Copying 16 files to D:\Owner\temp\compojure\lib

$>..\leiningen\bin\lein.bat jar
All :namespaces already compiled.
Created D:\Owner\temp\compojure/compojure.jar

Hello World!

leinは便利そうですが、まだ使い方が分からないので、取り合えずleinなしでCompojureを使ってみます。

さっき出来たlibフォルダにcompojure.jarを放り込み、compojureのreadmeをコピーして、hello-compojure.cljを作ります。

;hello-compojure.clj
(ns hello-world
  (:use compojure.core, ring.adapter.jetty)
  (:require [compojure.route :as route]))

(defroutes main-routes
  (GET "/" [] "<h1>Hello World</h1>")
  (route/not-found "<h1>Page not found</h1>"))

(run-jetty main-routes {:port 8080})
│  hello-compojure.clj
│
└─lib
        clojure-1.1.0.jar
        clojure-contrib-1.1.0.jar
        compojure.jar
          (以下略)

そして、javaから直接Clojureを実行し、サーバーを起動。

$>java -cp ".;lib\*" clojure.main hello-compojure.clj

http://localhost:8080/を開くとHello Worldが、http://localhost:8080/some-invalidなどを開くとPage not foundが見れます。


次回はCompojureをGAEと同時に使う予定。