没有REPL重启的任何方式添加依赖项lein项目?

时间:2013-05-07 00:04:50

标签: clojure leiningen

我现在做的是打开project.clj,在那里添加依赖项,运行lein deps重新启动repl,然后userequire等等。

问题是我真的不想重启repl,因为启动时间很慢,我不得不重新加载我的文件。

那么有没有更好的方法来为lein项目添加依赖?没有重新启动repl?

2 个答案:

答案 0 :(得分:36)

您可以使用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)现在可以正常工作。

答案 1 :(得分:12)

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

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

实际添加依赖项我通常点击

  • Alt-x nrepl-restart
  • ctrl-c ctrl -k 重新加载文件,
  • ctrl-c alt-n 返回缓冲区中的命名空间i

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