Clojure 围绕lein的困惑:依赖项和插件

Clojure 围绕lein的困惑:依赖项和插件,clojure,clojurescript,leiningen,Clojure,Clojurescript,Leiningen,在project.clj中,当您看到以下情况时: :dependencies [[org.clojure/clojure "1.8.0"] [org.clojure/clojurescript "1.7.228"] [com.cemerick/piggieback "0.2.1"] [org.clojure/tools.nrepl "0.2.10"] [org.cl

project.clj
中,当您看到以下情况时:

:dependencies [[org.clojure/clojure       "1.8.0"]
               [org.clojure/clojurescript "1.7.228"]
               [com.cemerick/piggieback "0.2.1"]
               [org.clojure/tools.nrepl "0.2.10"]
               [org.clojure/core.async "0.2.374"]]
以及:

  • 这些包裹是从哪里来的?仅仅是Clojars和Maven吗可以将Lein配置为也从GitHub获取它们吗?
  • 当这些包被添加到您的项目中时,lein仅仅是下载它们并将它们添加到您的java类路径中吗?还是发生了其他事情
  • 这些包裹是从哪里来的 答案很好

    您可以从GitHub下载依赖项,但我建议您使用Maven repos,因为Leiningen生态系统就是围绕这一点构建的

  • lein只是下载它们并将它们添加到java类路径中吗?还是其他什么事情也在发生
  • 这值得进一步讨论。例如,启动leiningen REPL时,leiningen将首先在其本地
    ~/.m2
    存储库中查找
    :dependencies
    中的所有依赖项。如果在那里找不到它们中的任何一个,它将向该项目的每个存储库发出请求,以查看它们是否有该依赖项的副本。如果他们这样做了,Leiningen将下载它,然后递归地下载依赖项等等。下载完所有依赖项后,Leiningen会将它们全部添加到应用程序的类路径并启动应用程序

    Leiningen需要记住的一点是,有两个JVM和两个类路径,一个用于应用程序,一个用于Leiningen。当您将依赖项添加到
    :依赖项
    时,它们进入应用程序的类路径;当它们添加到
    :插件
    时,它们进入Leiningen的类路径。

    相关:
    :plugins [[org.bodil/lein-noderepl "0.1.11"]
              [lein-cljsbuild           "1.1.2"]
              [lein-npm                 "0.6.1"]
              [lein-repls               "1.9.5"]
              [lein-doo                 "0.1.6"]]