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

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

事情是,我真的不喜欢重新启动repl,因为启动时间很慢,我不得不重新加载我的文件。

那么是否有更好的方法将依赖添加到lein项目? 不重新启动repl?

您可以使用dynamic类path加载器和依赖关系parsing器Alembic 。 好事是它不会加载所有的石榴依赖。

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

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

然后在你的Repl中只需要加载你需要的类path,如果需要的话,它们会被lein从存储库中拉出来:

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

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

为了快速testing,您可以使用石榴来添加依赖关系

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

为了实际添加依赖我ususally打

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

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