Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Clojure 有没有办法在不重新启动REPL的情况下向lein项目添加依赖项?_Clojure_Leiningen - Fatal编程技术网

Clojure 有没有办法在不重新启动REPL的情况下向lein项目添加依赖项?

Clojure 有没有办法在不重新启动REPL的情况下向lein项目添加依赖项?,clojure,leiningen,Clojure,Leiningen,我现在要做的是打开project.clj,在那里添加依赖项,运行lein-depsrestart-repl,然后use,require等等 问题是,我真的不喜欢重新启动repl,因为启动时间很慢,我必须重新加载文件 那么,有没有更好的方法向lein项目添加依赖项呢?无需重新启动repl?进行快速测试,您就可以动态添加依赖项 => (use '[cemerick.pomegranate :only (add-dependencies)]) nil => (add-dependencie

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

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


那么,有没有更好的方法向lein项目添加依赖项呢?无需重新启动repl?

进行快速测试,您就可以动态添加依赖项

=> (use '[cemerick.pomegranate :only (add-dependencies)])
nil
=> (add-dependencies :coordinates '[[incanter "1.2.3"]])
因为实际上添加了一个依赖项,我通常会

  • Alt-x nrepl重新启动
  • ctrl-cctrl-k以重新加载文件
  • ctrl-calt-n返回缓冲区中的命名空间i
整个过程需要jvm启动时间(我同意这有点痛苦)加上五秒钟。它有助于将项目保持在加载文件时需要初始化的状态

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

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

{:user
  {:dependencies [[alembic "0.3.2"]]}}
然后在Repl中,只需加载所需的类路径,它们将由
lein从存储库中提取,如果需要:

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

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

谢谢!这正是我想要的哦,哇,在写基本相同的答案时错过了这个+1.@Kolja,谢谢你发现了打字错误。