Clojure 使用leiningen安装库而不创建项目

Clojure 使用leiningen安装库而不创建项目,clojure,leiningen,Clojure,Leiningen,我正在学习Clojure,来自Ruby背景 我正在寻找类似于gem安装的东西。lein install的各种咒语似乎不符合这一要求 有没有一种方法可以简单地在本地安装一个库,这样就可以在REPL中引用它,而无需创建项目?看起来,您想用lein安装一个库。这是最新的,请安装并像这样使用 lein localrepo install <filename> <[groupId/]artifactId> <version> lein localrepo安装 Jav

我正在学习Clojure,来自Ruby背景

我正在寻找类似于
gem安装的东西。
lein install
的各种咒语似乎不符合这一要求


有没有一种方法可以简单地在本地安装一个库,这样就可以在REPL中引用它,而无需创建项目?

看起来,您想用lein安装一个库。这是最新的,请安装并像这样使用

 lein localrepo install <filename> <[groupId/]artifactId> <version>
lein localrepo安装

Java和clojure通常没有全局安装库的概念。您应该始终创建具有最小依赖集的类路径。您需要以某种方式指定和管理这个类路径,最简单的方法是使用leiningen,这需要一个项目

leiningen自动化了检索远程库并将它们放入本地存储库的过程,这有点类似于gem install,但这些库不会自动供REPL使用


让一组库始终可用的最简单的方法是在开始新项目之前有一个用于REPL实验的“scratch”项目。这不会带来太多开销。

在lein 2中,您可以使用要安装的软件包更新profiles.clj:

~\user\.lein\profiles.clj
在lein的任何项目首次运行时,本地回购将根据profiles.clj中的内容进行更新

有时我只是运行leindeps而不在项目文件夹中,这将为您更新本地repo


这样,您可以将任何库添加到您的项目。CLJ或调用RePL,它将从本地RePO中提取。

< P>如果您的目标仅仅是在RePL考虑使用的加载库。它动态加载类路径、解析依赖项并自动从存储库中提取库

下面是一个用例:

(require 'alembic.still)
(alembic.still/distill '[enlive "1.1.1"])
它只需要将以下条目添加到
.lein/project.clj

{:dev {:dependencies [[alembic "0.1.1"]]}}

请参阅。

如果您没有项目,请将依赖项添加到全局lein用户配置文件中,而不是位于
~/.lein/profiles.clj

老实说,医生对莱恩来说并不好。所以这一部分令人困惑。但您可以编辑该文件,如下所示:

{:user {:plugins [[lein-pprint "1.1.1"]]
 :dependencies [[slamhound "1.3.1"]]}} 
:plugins
向量中,添加您想要的任何全局lein插件。在
:dependencies
向量中,您可以添加您希望在全球范围内可用的任何库

然后,无论您在哪里启动
lein repl
,您都可以使用这些依赖项。无论您在哪里运行
lein
,您都可以使用附加的插件功能

如果使用tools.deps而不是lein,aka,则使用
clj
命令而不是
lein
命令。那就有点不同了。相反,您希望修改
~/.clojure/deps.edn
文件。您将在此处添加依赖项:

{:deps {clj-time {:mvn/version "0.14.2"}}}
因此,如果在运行
clj
命令时将上述内容放入用户deps.edn中,则clj时间库将对您可用