lein run vs lein trampoline run vs uberjar

时间:2016-02-24 07:10:01

标签: clojure leiningen uberjar

lein runlein trampoline run和将cojure应用程序部署为uberjar有什么区别?有任何性能差异吗?

如果我执行lein run / lein trampoline run我可以直接进入服务器并从git中提取我的更改,而无需重新启动应用程序,对于uberjar也是如此。对于uberjars,我需要构建和部署应用程序。

提前致谢。

1 个答案:

答案 0 :(得分:12)

默认情况下,所有这三个都不会实时处理您的代码更改。

  • lein run :执行目标或默认命名空间的-main函数。 Lein完成了主要方法的完整执行,所以如果你的主要功能创建了一个Web服务器,那么leiningen进程也会一直保持不变。
  • lein trampoline :将-main函数作为一个单独的进程执行,以便主leiningen进程可以退出,因此只有一个进程在运行
  • lein uberjar :创建一个独立的jar文件,这样任何其他用户都不需要安装lein来运行代码。 (或任何源文件)。要运行jar,请执行 java -jar myjarname.jar ,其中包含所有源和所有依赖项。

如果你正在使用ring,那么lein-ring有一个可以这种方式启动的开发模式:

   lein ring server

确实会为您重新加载代码。

编辑:在生产中使用哪一个?

假设* production *表示将代码的捆绑版本发送给用户

使用 lein uberjar 创建jar并使最终产品独立于构建工具通常是首选方式。