【问题标题】:Any way to add dependency to lein project without REPL restart?有什么方法可以在不重新启动 REPL 的情况下将依赖项添加到 lein 项目?
【发布时间】:2013-04-30 19:47:16
【问题描述】:

我现在做的是打开project.clj,在那里添加依赖,运行lein depsrestart repl,然后use,require等等。

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

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

【问题讨论】:

    标签: clojure leiningen


    【解决方案1】:

    您可以使用Alembic,这是一个动态类路径加载器和依赖关系解析器。好在它不会加载所有的 pomegranate 依赖项。

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

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

    然后在您的 Repl 中只需加载您需要的类路径,它们将由 leinif 需要从存储库中提取:

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

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

    【讨论】:

    • 哦,哇,在写基本相同的答案时错过了这个。 +1。
    • @Kolja,感谢您发现错字。
    【解决方案2】:

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

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

    实际上我通常会添加一个依赖项

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

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

    【讨论】:

    • 谢谢!这正是我想要的
    猜你喜欢
    • 2020-03-18
    • 1970-01-01
    • 1970-01-01
    • 2018-10-15
    • 2021-05-31
    • 2019-01-31
    • 1970-01-01
    • 1970-01-01
    • 2021-07-07
    相关资源
    最近更新 更多