WindowsでLeiningen

 Clojureのビルド・ツールとしてデファクトになっているのは、Leiningenです。なんかMavenより使いやすそうだし、Mavenリポジトリも使えるので、とりあえず使ってみることにしました。

インストールの手順はLeiningenのサイトに書いてあるとおりです。

  1. lein-win32.zipをダウンロードします。
  2. 適当なフォルダに解凍します。
  3. 解凍したフォルダにPATHを通します。
  4. "lein self-install"を実行します。(同梱されているwget.exeで必要なファイルをとってくるようです。)

実行時のログです。

C:\Windows\system32>lein self-install
--00:00:58--  http://github.com/downloads/technomancy/leiningen/leiningen-1.3.1-
standalone.jar
           => `C:\java\lein\leiningen-1.3.1-standalone.jar'
Resolving github.com... done.
Connecting to github.com[207.97.227.239]:80... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
Location: https://github.com/downloads/technomancy/leiningen/leiningen-1.3.1-sta
ndalone.jar [following]
--00:00:59--  https://github.com/downloads/technomancy/leiningen/leiningen-1.3.1
-standalone.jar
           => `C:\java\lein\leiningen-1.3.1-standalone.jar'
Connecting to github.com[207.97.227.239]:443... connected.
HTTP request sent, awaiting response... 302 Found
Location: http://cloud.github.com/downloads/technomancy/leiningen/leiningen-1.3.
1-standalone.jar [following]
--00:01:00--  http://cloud.github.com/downloads/technomancy/leiningen/leiningen-
1.3.1-standalone.jar
           => `C:\java\lein\leiningen-1.3.1-standalone.jar'
Resolving cloud.github.com... done.
Connecting to cloud.github.com[216.137.53.39]:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 6,623,453 [application/octet-stream]

100%[====================================>] 6,623,453      7.39M/s    ETA 00:00

00:01:01 (7.39 MB/s) - `C:\java\lein\leiningen-1.3.1-standalone.jar' saved [6623
453/6623453]

新しいプロジェクトを作る

新しいプロジェクトを作るコマンドは、次のようになります。

  lein new projectname

C:\Users\hoge\workspace>lein new helloweb
Created new project in: helloweb

できあがったフォルダの中身は次のようになっています。

C:\Users\hoge\workspace>tree /F helloweb
フォルダ パスの一覧:  ボリューム Partition_1
ボリューム シリアル番号は ****-**** です
C:\USERS\HOGE\WORKSPACE\HELLOWEB
│  .gitignore
│  project.clj
│  README
│
├─src
│  └─helloweb
│          core.clj
│
└─test
    └─helloweb
        └─test
                core.clj

Mavenのpom.xmlにあたるのは、project.cljです。デフォルトでは、次のようになっています。まだ、この時点ではclojure-1.2.0.jarなどは、プロジェクトフォルダに入っていません。

(defproject helloweb "1.0.0-SNAPSHOT"
  :description "FIXME: write"
  :dependencies [[org.clojure/clojure "1.2.0"]
                 [org.clojure/clojure-contrib "1.2.0"]])

依存ライブラリを取得する。

  lein deps
    project.cljに記述した依存ライブラリを取得します。

C:\Users\hoge\workspace\helloweb>lein deps
Copying 2 files to C:\Users\hoge\workspace\helloweb\lib

C:\Users\hoge\workspace\helloweb>tree /F .
フォルダ パスの一覧:  ボリューム Partition_1
ボリューム シリアル番号は ****-**** です
C:\USERS\HIGE\WORKSPACE\HELLOWEB
│  .gitignore
│  project.clj
│  README
│
├─classes
├─lib
│      clojure-1.2.0.jar
│      clojure-contrib-1.2.0.jar
│
├─src
│  └─helloweb
│          core.clj
│
└─test
    └─helloweb
        └─test
                core.clj

よく使うタスク

$ lein new NAME # 新しいプロジェクトを生成する。

$ lein deps # 依存ライブラリを lib/ にインストールする。

$ lein test [TESTS] # TESTS名前空間にあるテスト、またはすぺてのテストを実行する。

$ lein repl # REPL(Read-Eval-Print-Loop)セッションとソケット・サーバを起動する。

$ lein jar # プロジェクト全体を、jarファイルにパッケージする。

$ lein uberjar # 依存ライブラリも含めて、jarファイルにパッケージする。

$ lein install [NAME VERSION] # プロジェクトをインストールする。