Leiningen 和 Clojure CLI 工具有什么区别,我应该如何使用它们?

What's the difference between Leiningen and Clojure CLI tools and how should I use them?

最近在玩Clojure。据我所知,Clojure 生态系统中最受欢迎的依赖管理工具是 Leiningen。但我还发现 Clojure 提供了 CLI tools,这可能会取代 Leiningen。由于Clojure经验的限制,我不太明白Leiningen和那些CLI工具的区别。我听说那些 CLI 工具很轻量级,这是什么意思?我应该如何使用它们?

CLI 工具在范围上比 Leiningen 更受限制 - 这是一个可以用来快速启动 REPL 的小工具。与 tools.deps.alpha 结合使用,它可用于 运行 编码并引入第 3 方依赖项。您可以阅读更多相关信息 here

Leiningen 可以做到所有这些,此外:

  • 创建部署工件 (uberjars)
  • 启动 REPL 服务器或连接到 运行ning 一个
  • 管理混合项目(例如 Clojure + Java 或 Clojure + Clojurescript)
  • 运行 项目中的任意任务
  • 管理依赖关系
  • 插件支持(linters、部署工具)
  • 与 Maven 集成

Lein 存储库包含一个示例项目文件,sample.project.clj,这有点让人不知所措,但展示了 Lein 可以做的所有事情。

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