Leiningenで簡単Clojureプロジェクト
Programming Clojureの訳本がもうすぐ出るということで、ここ数日盛り上がり気味のClojure。Amazonに出たので、即注文。
Clojureには、Javaで言うMavenに相当するツールで「Leiningen」というのがある。
http://github.com/technomancy/leiningen
これを使えば、依存ライブラリのダウンロードから、スタンドアローンのjar生成まで一気にやってくれる。
インストール
公式サイトの説明そのままだけど、インストール方法。
# シェルスクリプトをダウンロードしてパスの通ったところに置く。 $ wget -O /usr/local/bin/lein http://github.com/technomancy/leiningen/raw/stable/bin/lein # 実行権限をつける。 $ chmod a+x /usr/local/bin/lein # ~/.m2/の下にleiningenがインストールされて、すぐに使えるようになる。 $ lein self-install
Clojureを単体でインストールするよりも簡単かも。
(ただし、Windowsのbatはまだないので、自力でインストールする必要がある。)
プロジェクト作成
lein new [project-name]
これで、[project-name]の下に project.cljとREADME、src/[project-name].cljができる。
あとは、[project-name].cljにclojureのプログラムを書くだけ。
他のライブラリを使いたければ、適当なのをhttp://clojars.org/で探してきて、project.cljの中に書く。
大抵は、:dependenciesのところに [グループID/アーティファクトID "バージョン"]と書くだけで大丈夫。
普通のMavenリポジトリも使える。
サンプル:
(defproject myproject "0.0.1-SNAPSHOT" :description "hogehoge" :dependencies [[org.clojure/clojure "1.1.0-alpha-SNAPSHOT"] [org.clojure/clojure-contrib "1.0-SNAPSHOT"] [compojure "0.3.2"] ;ClojarsにあるCompojureを使う。 [jfree/jfreechart "1.0.13"]] ;JBossのリポジトリにあるやつを使う。 :reposotiries [["jboss" "http://repository.jboss.com/maven2/"]] :main myproject ;これを指定してやると、myproject.cljの(def -main [] ...)の箇所が ;スタンドアローンjar(下記)でのエントリポイントになる。
普通のMavenリポジトリも使えるため、このへん→http://mvnrepository.com/で適当に探してもよい。
JBossのリポジトリhttp://repository.jboss.com/maven2/とかなら、Web系の最新のライブラリが手に入る。
スタンドアローンjar作成
依存するライブラリを全部まとめて、一つのjarファイルに固めて配布できる。
JavaがインストールされているWindows上にコピーして、ダブルクリックすると、project.cljの:mainで指定したnamespaceの(def -main [] ...)から実行が始まるファイルを作ることができる。
; (project.cljに:mainを指定した上で) lein uberjar
これで、[project-name]-standalone.jarが生成される。
その他
- コマンド一発(二発?)でClojarsに自分の作ったライブラリを上げることができるらしい。
- 社内ローカルにclojarsサーバを立ててライブラリを共有する、みたいな使い方もできそうなので試してみたい。
- やれることはmavenと一緒だが、簡単さが重要。