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"]]

和:
: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"]]
  • 这些软件包来自哪里?仅仅是Clojars和Maven吗? 是否可以将Lein配置为从GitHub获取它们?
  • 将这些软件包添加到您的项目时,是lein仅下载它们并将它们添加到您的Java类路径中吗? 还是还有其他事情发生?
  • 最佳答案

  • 这些软件包来自哪里?


  • What are the leiningen default repositories?很好地回答了

    您可以使用lein-git-deps之类的东西从GitHub下载依赖项,但是我建议使用Maven仓库,因为这是建立在Leiningen生态系统基础上的。


  • lein只是下载它们并将它们添加到您的java类路径中吗?还是还有其他事情发生?


  • 这值得更多讨论。例如,当您启动leiningen REPL时,Leiningen将首先在其本地~/.m2存储库中查找:dependencies中的所有依赖项。如果在那里找不到它们,它将向该项目的每个存储库发出请求,以查看它们是否具有该依赖项的副本。如果他们这样做,Leiningen将下载它,然后递归下载该依赖项依赖关系等等。下载所有依赖项后,Leiningen会将其全部添加到您的应用程序的类路径中并启动该应用程序。

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

    09-15 22:54