Clojure / Lein / 将包打成 Jar 包

3
在过去的6个月里,我一直在repl中运行我的Clojure应用程序。也就是说,每当我想运行这个应用程序时,我会加载一个clojure repl,然后输入:(load-file "src/run.clj"),然后它就会运行我的应用程序。然后,clojure会加载所有的*.clj文件,编译它们并运行。
最近我转向了Lein。我想要“预先编译/打包”我的代码,这样我就可以获得一个单独的jar包,带有Main方法,并通过“java…”直接在命令行上运行它,而不必加载一个clojure/lein repl。
对我来说,我需要阅读一些文档。但如果有人能指点我一下一个好的教程,那将不胜感激。谢谢!
1个回答

8

此外,官方lein教程中也有一个很好的教程。我只是包含这些信息以防将来出现任何失效链接。

  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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接