什么';Leiningen和Clojure CLI工具之间的区别是什么?我应该如何使用它们?

什么';Leiningen和Clojure CLI工具之间的区别是什么?我应该如何使用它们?,clojure,leiningen,Clojure,Leiningen,我最近在和Clojure玩。据我所知,Clojure生态系统中最受欢迎的依赖关系管理工具是Leiningen。但我也发现Clojure提供了一种可能取代Leiningen的方法。由于Clojure的经验有限,我不太理解Leiningen和那些CLI工具之间的区别。我听说那些CLI工具非常轻量级,这意味着什么?我应该如何使用它们?CLI工具的范围比Leiningen更有限-它是一个可以用来快速启动REPL的小工具。与tools.deps.alpha相结合,它可以用来运行代码和拉入第三方依赖项。你可

我最近在和Clojure玩。据我所知,Clojure生态系统中最受欢迎的依赖关系管理工具是Leiningen。但我也发现Clojure提供了一种可能取代Leiningen的方法。由于Clojure的经验有限,我不太理解Leiningen和那些CLI工具之间的区别。我听说那些CLI工具非常轻量级,这意味着什么?我应该如何使用它们?

CLI工具的范围比Leiningen更有限-它是一个可以用来快速启动REPL的小工具。与
tools.deps.alpha
相结合,它可以用来运行代码和拉入第三方依赖项。你可以阅读更多关于它的内容

莱宁根可以做到这一切,另外:

  • 创建部署工件(Uberjar)
  • 启动REPL服务器或连接到正在运行的服务器
  • 管理混合项目(例如Clojure+Java或Clojure+Clojurescript)
  • 在项目中运行任意任务
  • 管理依赖关系
  • 插件支持(linter、部署工具)
  • 与Maven集成
Lein存储库包含一个示例项目文件,这有点过于庞大,但显示了Lein可以做的所有事情


在这一点上,Lein对于构建应用程序和库更为有用,因为它具有您可能需要的所有功能。也就是说,CLI tools+
tools.deps
正在迅速获得吸引力,有些项目添加了Leiningen中所有缺失的部分,但您必须自己将它们组合起来。

这个答案已经过时(在某些情况下是正确的)但不是CLI可以做到这一切,而且超级种子leiningen在大多数clojure开源项目上都能做到。@andy有趣-你有证据支持吗?根据最近的Clojure调查(2020年),近90%的受访者使用Lein,而clj cli的使用率约为50%。我还是要说,Lein提供了更好的开箱即用体验,即使没有插件——特别是uberjar命令。我同意,自从我写了那篇评论后,我就一直在重复这一点,我们都很好。我仍然可以在CLI中找到的唯一优势是,它将figwheel与开箱即用集成在一起,并且在用户部分上没有配置,而且我喜欢直接从github依赖项引入deps.edn。但这是一个简单的偏好问题。谢谢你的回复,我可以更正。没问题,安迪-我希望最终deps能以某种方式与Lein合并(例如,取代其依赖关系管理,使Leiningen更像一个项目任务执行者)。