Clojure/leiningenでHelloWorld

Clojure使ってみると良い、と言われたのでまずはハローワールドする。
最新1.3の話。ネットの情報が基本的に古かったので、まとめておく。

leiningenのインストール

leiningenはパッケージマネージャ兼ビルドシステムらしいです。

$ cd ~/bin #パスが通ってる所
$ wget http://github.com/technomancy/leiningen/raw/stable/bin/lein
$ chmod +x lein
$ lein self-install

プロジェクト作成

$ cd ~/workspace # 作業スペースへ
$ lein new mycloj
$ cd mycloj
$ tree # ディレクトリ構成を確認
.
├── README
├── project.clj
├── src
│   └── mycloj
│       └── core.clj
└── test
    └── mycloj
        └── test
            └── core.clj

まだビルドはできません
project.clj に:main を追記

(defproject mycloj "1.0.0-SNAPSHOT"
  :description "FIXME: write description"
  :dependencies [[org.clojure/clojure "1.3.0"]]
  :main mycloj.core)

src/mycloj/core.cljを編集

(ns mycloj.core
  (:gen-class))

(defn -main [& args]
  (println "Hello, World!"))

jarに固める

$ lein deps # 構成をインストール
$ lein uberjar #jarに固める  ビルド含む
$ java -jar mycloj-1.0.0-SNAPSHOT-standalone.jar #jar実行

というか lein repl で対話インタプリタで勉強するのが楽です。

参考

leiningenを使った Clojure 開発 - 水底で思うこと http://d.hatena.ne.jp/minazoko/20100519/1274262279

technomancy/leiningen https://github.com/technomancy/leiningen