45

我现在要做的是打开 project.clj,在其中添加依赖项lein deps,然后运行 ​​restart repl,use等等require

问题是我真的不喜欢重新启动 repl,因为启动时间很慢,我必须再次重新加载我的文件。

那么有没有更好的方法来增加对 lein 项目的依赖呢?不重新启动repl?

4

2 回答 2

37

你可以使用Alembic,一个动态的类路径加载器和依赖解析器。好消息是它不会加载所有石榴依赖项。

将以下内容添加到您的.lein/profiles.clj:

{:user
  {:dependencies [[alembic "0.3.2"]]}}

然后在您的 Repl 中加载您需要的类路径,如果需要,它们将从存储库中提取lein

(require 'alembic.still)
(alembic.still/distill '[enlive "1.1.5"])

(require 'net.cgrand.enlive-html)现在应该可以工作了。

于 2013-05-07T00:29:16.603 回答
13

为了快速测试,您可以使用pomegranate 动态添加依赖项

=> (use '[cemerick.pomegranate :only (add-dependencies)])
nil
=> (add-dependencies :coordinates '[[incanter "1.2.3"]])

实际上添加了一个依赖项,我通常会点击

  • Alt-xnrepl-重启
  • ctrl-cctrl-k重新加载文件,
  • ctrl-calt-n回到缓冲区中的命名空间 i

整个过程需要 jvm 启动时间(我同意这有点痛苦)加上五秒钟。它有助于使您的项目保持在加载文件完成所有需要初始化的状态。

于 2013-05-07T00:13:23.870 回答