与许多JVM语言一样,打包和启动JVM应用程序可以通过多种方式完成。有哪些可靠的方法来打包具有大量clojure和Java依赖项的大型clojure项目,以便在类似生产的环境中部署和启动它们?
答案 0 :(得分:4)
使用leiningen,您只需打包:
lein uberjar
这会将所有依赖项和代码打包到一个jar中,然后您可以通过它运行:
java -jar uberjar.jar
为了使其工作,您必须在:main
中指定project.clj
命名空间,这将触发AOT,后者被认为不适用于其他原因,例如being able to cleanly use clojure.tools.namespace
over your project。因此,为了避免AOT,您可以跳过在:main
中指定project.clj
命名空间,并使用稍微详细的命令运行:
java -jar uberjar.jar clojure.main -m your.main.namespace