Leiningen で Clojure プロジェクトを作成
2010年05月13日
Leiningen は Clojure プロジェクトのビルドツール。
なんかいろいろ便利らしい。単体で動作する jar も簡単に生成できる。
Leiningen のインストール
Leiningen (README.md at master from technomancy’s leiningen – GitHub) の Installation の 1. Download the script. から lein (bash script) をダウンロードする。
ダウンロードした lein ファイルをパスの通った場所に配置して実行権限を付加し、以下のコマンドを実行する。
コマンド実行後、~/.m2/ 以下に Leiningen がインストールされる。
$ lein self-install
Leiningen (Leiningen 1.1.0 on Java 1.6.0_17 Java HotSpot(TM) 64-Bit Server VM) で使えるタスクのリスト。
pom
help
upgrade
install
jar
test
deps
uberjar
clean
compile
version
new
lein help taskname
でタスクの説明を見ることができる。
$ lein help new Create a new project skeleton. lein new [group-id/]artifact-id [project-dir] Group-id is optional. Project-dir defaults to artifact-id if not given. Neither group-id nor artifact-id may contain slashes.
Hello, World を作成
サンプルとして、Hello, World プログラムを作ってみる。
プロジェクト(hello)を作成する。
$ lein new hello
hello/src/hello/core.clj にコードを記述する。
(ns hello.core (:gen-class)) (defn -main [& args] (. javax.swing.JOptionPane (showMessageDialog nil "Hello, World")))
プロジェクト・ファイルに :main hello.core
を追加して、src/hello/core.clj の (defn -main [& args] ...)
をスタンドアロン jar のエントリポイントに設定する。
(defproject hello "1.0.0-SNAPSHOT" :description "FIXME: write" :dependencies [[org.clojure/clojure "1.1.0"] [org.clojure/clojure-contrib "1.1.0"]] :main hello.core)
uberjar
でスタンドアロン jar を生成する。
$ lein uberjar [null] Compiling hello.core Created /path/to/project/hello/hello.jar Including hello.jar Including clojure-1.1.0.jar Including clojure-contrib-1.1.0.jar $ ls README hello-standalone.jar lib/ src/ classes/ hello.jar project.clj test/ $ chmod +x hello-standalone.jar $ java -jar hello-standalone.jar
アイコンのダブルクリックでもOK。