【问题标题】:When I deploy to clojars, should org.clojure/clojure be added or be removed to :dependencies? [closed]当我部署到 clojars 时,应该将 org.clojure/clojure 添加或删除到 :dependencies 吗? [关闭]
【发布时间】:2020-12-25 09:02:30
【问题描述】:

当我部署到 clojars 时,应该在 project.clj 的 :dependencies 中添加还是删除 org.clojure/clojure?

哪种方法更好?

【问题讨论】:

    标签: clojure leiningen clojars


    【解决方案1】:

    当您将库部署到 Clojars 时,通常您将部署一个仅包含您自己项目的源代码的 JAR 文件。 JAR 文件将不包含项目中的任何 依赖项。这些将在也部署到 Clojars 的 pom.xml 文件中指定。 pom.xml 文件是 Leiningen 在构建 JAR 文件并将其部署到 Clojars 时自动生成的。

    当其他项目依赖于您的库时,他们将从 JAR 文件中获取代码,并且随附的 pom.xml 将告诉他们需要哪些其他库才能使用您的代码。一旦 Leiningen 从 Clojars 下载了您的库,它就会自动下载这些其他库。

    由于所有此类项目都需要 Clojure 本身来运行它们,因此它们已经依赖于 Clojure —— 因此,您的项目是否表明依赖于 Clojure 并不重要。

    【讨论】:

    • 这忽略了 Java 程序依赖于 Clojure 库的可能性。所有 Clojure 项目都应该明确依赖于 org.clojure/clojure,因为它们实际上依赖于它来运行。
    • 感谢您的回答。我理解您的回答是没有区别,因为每个想要运行我的库的人都有 org.clojure/clojure 本身。从您的回答中,删除依赖项中的 org.clojure/clojure 似乎更好。因为如果我删除了 :dependencies 中的 org.clojure/clojure,使用不同 clojure 版本的人可以使用我的库。 (可能,我必须在 :dependencies 中指定 clojure 版本)对吗?
    • 谢谢你,阿莫洛伊。我理解你的cmets。
    猜你喜欢
    • 2020-11-04
    • 1970-01-01
    • 2017-07-23
    • 2020-12-07
    • 1970-01-01
    • 2013-06-14
    • 2018-08-17
    • 2013-06-18
    • 2018-11-24
    相关资源
    最近更新 更多