Clojure / Lein /包入Jar

时间:2012-04-20 04:06:23

标签: java clojure leiningen

在过去的6个月里,我一直在运行我的Clojure应用程序。

即,每当我想运行应用程序时,我都会加载一个clojure repl,然后输入: (load-file“src / run.clj”)...它运行我的应用程序。

然后,clojure加载我的所有* .clj文件,编译它们并运行。

我最近切换到了Lein。我想“提前编译/打包”我的代码,以便我可以使用Main方法获得一个jar,并通过“java ...”直接在命令行上运行它,而不是必须加载一个clojure / lein repl。

我很清楚我需要做一些RTFMing。但是,如果有人能指点我一个好的教程,我将非常感激。

谢谢!

1 个答案:

答案 0 :(得分:5)

official lein tutorial还有一个很好的教程。我只是包含这些信息,万一我们将来会遇到任何死链接。

1)首先需要通过向project.clj添加:main来指定主命名空间

(defproject yourproject "0.1"
   :dependencies [[org.clojure/clojure "1.4.0"]]
   :main yourproject.core)

2)在指定的主命名空间中,您必须添加(:gen-class),并且必须使用(defn -main ...)

指定主要功能
(ns yourproject.core
  (:gen-class))

(defn -main [& args]
  (println "This is your crazy project!"))

3)运行uberjar以创建独立jar

lein uberjar

4)使用java -jar

运行您的程序
java -jar yourproject.jar