http://clojure.org/compilation
http://zef.me/2470/building-clojure-projects-with-leiningen
위 링크를 통하면 자세한 설명이 나와있습니다.
설명을 제외하고 예제 위주로 진행하다록 하겠습니다.
project name: hello
environment : os x
1. 프로젝트 생성.
[code]
lein new hello
[/code]
|____.gitignore
|____classes
| |____hello
| | |____core$_main.class
| | |____core$loading__4410__auto__.class
| | |____core.class
| | |____core__init.class
|____hello-1.0.0-SNAPSHOT.jar
|____hello.jar
|____lib
| |____clojure-1.2.0.jar
| |____clojure-contrib-1.2.0.jar
| |____dev
| | |____clojure-1.2.0.jar
| | |____swank-clj-0.1.1.jar
| | |____swank-clojure-1.2.0.jar
|____project.clj
|____README
|____src
| |____hello
| | |____core.clj
|____test
| |____hello
| | |____test
| | | |____core.clj
위는 완성본 트리 구조이다. 약간은 다를 수 있다.
2. 개발 편의성을 높이기 위해 swank를 사용.
project.clj를 아래와 같인 수정해준다.
[code]
(defproject hello "1.0.0-SNAPSHOT"
:description "FIXME: write"
:dependencies [[org.clojure/clojure "1.2.0"]
[org.clojure/clojure-contrib "1.2.0"]]
:dev-dependencies [[swank-clojure "1.2.0"]
[swank-clj "0.1.1"]
]
:main hello.core
)
[/code]
3. "hello world"를 찍기 위해 소스 수정.
이제 helloworld를 찍어줄 core.clj를 수정해보자.
[code]
(ns hello.core
(:gen-class))
(defn -main [& args]
(println "Hello world!"))
[/code]
4. 컴파일하기.
[code]
lein uberjar hello.jar
[/code]
5. 실행하기.
인자는 -k option을 이용하면 된다.
[code]
java -jar hello.jar
[/code]
out put
[code]
hello world!
[/code]