在过去的6个月里,我一直在运行我的Clojure应用程序。
即,每当我想运行应用程序时,我都会加载一个clojure repl,然后输入: (load-file“src / run.clj”)...它运行我的应用程序。
然后,clojure加载我的所有* .clj文件,编译它们并运行。
我最近切换到了Lein。我想“提前编译/打包”我的代码,以便我可以使用Main方法获得一个jar,并通过“java ...”直接在命令行上运行它,而不是必须加载一个clojure / lein repl。
我很清楚我需要做一些RTFMing。但是,如果有人能指点我一个好的教程,我将非常感激。
谢谢!
答案 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