我正在学习 Clojure 并且来自 Ruby 背景。
我正在寻找类似的东西gem install <library>
。的各种咒语lein install
似乎不适合这个法案。
有没有办法简单地在本地安装一个库,以便可以在 REPL 中引用它而无需创建项目?
好像,你想用 lein 安装一个库。这是插件,安装它并使用
lein localrepo install <filename> <[groupId/]artifactId> <version>
Java 和 Clojure通常没有全局安装库的想法。您应该始终使用最少的依赖项创建一个类路径。您需要以某种方式指定和管理这个类路径,最简单的方法是使用 leiningen,这需要一个项目。
leiningen 自动化了检索远程库并将它们放置在本地存储库中的过程,这有点类似于 gem install,但是这些库不会自动对 REPL 可用。
让一组库始终可用的最简单方法是在开始新项目之前拥有一个用于 REPL 实验的“临时”项目。这不是太多的开销。
在 lein 2 中,您可以使用要安装的软件包更新 profiles.clj:
~\user\.lein\profiles.clj
使用 lein 首次运行任何项目时,本地 repo 将使用profiles.clj 中增加的内容进行更新。
有时我只是在项目文件夹中运行 lein deps,这将为您更新本地存储库。
这样,您可以将任何库添加到您的 project.clj 或从 repl 调用它,它将从本地 repo 中提取。
如果您没有项目,则将您的依赖项添加到您的全局 lein 用户配置文件中,而不是位于 ~/.lein/profiles.clj
.
老实说,该文档对 lein 来说并不好。所以这部分很混乱。但是您像这样编辑该文件:
{:user {:plugins [[lein-pprint "1.1.1"]]
:dependencies [[slamhound "1.3.1"]]}}
在 :plugins
向量中添加您想要的任何全局 lein 插件。在 :dependencies
向量中,您可以添加您希望在全球范围内可用的任何库。
然后,无论您从哪里开始, lein repl
您都可以使用这些依赖项。在您运行的任何地方, lein
您都可以使用额外的插件功能。
如果您使用 tools.deps 而不是 lein,也就是 clj
命令而不是 lein
命令。然后就有点不一样了。相反,您想修改您的 ~/.clojure/deps.edn
文件。您将在那里添加依赖项的地方:
{:deps {clj-time {:mvn/version "0.14.2"}}}
因此,如果您在运行 clj
命令时将上述内容放在用户 deps.edn 中,那么您将可以使用 clj-time 库。