据我所知,当我做nrepl-jack-in
一个REPL加载与project.clj中定义的所有依赖关系。如果我然后更新project.clj添加一个新的依赖项,我是否需要终止服务器并重新运行nrepl-jack-in
或者有办法更新当前REPL中的依赖项?如何在使用nrepl.el时更新Clojure依赖关系?
14
A
回答
5
更新:也许有一些希望, 见https://github.com/cemerick/pomegranate
以前:
简短的回答是肯定的 - 你必须重新启动JVM进程。
我知道没有更好的方式来更新生活repl中的依赖关系。 Leiningen(由nrepl-jack-in调用)将管理依赖关系,并仅在重新启动时设置类路径。试图做一些动态和聪明的事情是非常脆弱的。
下打出了文本是事实属实,但在片刻的思索仿佛那些坏主意,我已经标记它作为这样......
如果你有一个本地的依赖(如JAR文件),你可以使用
弃用功能
add-classpath
在repl。但是你会进入龙类沼泽的java类加载器。
1
石榴存在之前,我写了我自己的库来动态加载依赖关系。
https://github.com/bmillare/dj
lein2的释放,以及它如何被窝里可以使用pomegrante后,我重写DJ使用此下方。所以,即使你不使用'dj',它也可以作为参考来看看它在做什么。
0
重新启动REPL似乎是最简单的方法。这是可以做到 有:
M-x cider-restart
也出现以完成lein deps
。因此,添加新依赖项的整个过程 只需将require
添加到 您的project.clj
,然后调用cider-restart
。
另一个(很方便)的方法是使用 clj-refactor。 添加神器(C-c m a p
或cljr-add-project-dependency
) 将提示您想要的版本,自动把新 依赖到您project.clj
文件,并重新加载会话。
相关问题
- 1. Clojure模块依赖关系
- 2. Leiningen和Clojure依赖关系
- 3. 如何更新ruby依赖关系?
- 4. 在Clojure中更新本地依赖关系
- 5. 如何在决定使用哪个依赖项时注入依赖关系需要使用依赖关系
- 6. 如何在sbt更新依赖关系时执行任务?
- 7. Bower依赖关系更新可用
- 8. 如何在尝试使用Firebase身份验证时更新依赖关系?
- 9. GitHub上Clojure库的Maven依赖关系
- 10. Scala/Clojure编译依赖关系
- 11. 解决Clojure循环依赖关系
- 12. 分析clojure程序的依赖关系
- 13. 在eclipse中更新依赖关系后总是执行复制依赖关系
- 14. 我如何在Boot中添加github/local依赖关系(clojure)
- 15. 如何在Clojure项目中安装依赖关系
- 16. 如何在复制依赖关系时排除eclipse-plugin依赖关系?
- 17. Jenkins - 自动更新依赖关系
- 18. package.json不更新依赖关系
- 19. Maven依赖关系 - 版本vs更新
- 20. 无法更新Firebase依赖关系(com.google.firebase)
- 21. 更新行有依赖关系
- 22. Gradle不更新快照依赖关系
- 23. 自动更新Maven依赖关系
- 24. 依赖关系的nuget依赖关系
- 25. 如何在Eclipse中使用Buildship刷新项目依赖关系?
- 26. 何时注入依赖关系或在Aurelia中如何使用?
- 27. 如何使用lein来管理依赖关系的依赖关系?
- 28. 如何覆盖依赖关系的依赖关系?
- 29. 如何在gerrit评论中更新我的依赖关系
- 30. 使用DynamicParameters时缺少依赖关系