gpt4 book ai didi

clojure - 围绕 lein 的困惑 :dependencies and :plugins

转载 作者:行者123 更新时间:2023-12-01 12:30:02 24 4
gpt4 key购买 nike

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"]]
  1. 这些包裹来自哪里?仅仅是 Clojars 和 Maven 吗? Lein 是否也可以配置为从 GitHub 获取它们?
  2. 当这些包被添加到您的项目中时,lein 只是下载它们并将它们添加到您的 java 类路径中吗?还是发生了其他事情?

最佳答案

  1. Where are these packages coming from?

What are the leiningen default repositories? 回答得很好

你可以使用类似 lein-git-deps 的东西从 GitHub 下载依赖项,但我建议使用 Maven 存储库,因为 Leiningen 生态系统就是围绕它构建的。

  1. Is lein merely downloading them and adding them to your java class path? Or is something else happening as well?

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

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

关于clojure - 围绕 lein 的困惑 :dependencies and :plugins,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35115621/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com