【问题标题】:Keeping dependency versions up to date in Leiningen projects在 Leiningen 项目中使依赖项版本保持最新
【发布时间】:2023-03-12 15:20:02
【问题描述】:

有没有一种简单的方法可以使用 Leiningen 找出可用的依赖项版本?

例如,如果我有一个依赖于 Hiccup 和 Compojure 的 Web 应用程序,我如何确定我使用的是每个应用程序的最新版本,而无需访问每个应用程序的 github 页面?

注意:我使用 Ant 和 Ivy 来构建我的 Java 项目,所以我对 Maven 的了解有限 - 所以请拼出(或提供精细链接供我阅读)Leiningen 向我公开的任何 Maven 概念,这将有助于这个(我知道在底层,Leiningen 使用 Maven 进行依赖解析)。塔。

【问题讨论】:

    标签: clojure leiningen


    【解决方案1】:

    自从提供原始答案以来,Clojure 生态系统已经发展。目前,我建议使用lein-ancient

    一个 Leiningen 插件,用于检查您的项目是否存在过时的依赖项和插件。此插件取代了 lein-outdated 并使用不同 Maven 存储库中的元数据 XML 文件,而不是基于 Lucene 的搜索索引。版本比较是使用 version-clj 完成的。

    它的前身 lein-outdated 在其 README 中包含这条有用的信息:“lein-outdated is outdated”。 :)

    【讨论】:

      【解决方案2】:

      至少对于保存在 clojars 中的依赖项而言,执行此操作的规范方法是 lein-search plugin

      更新:请参阅下面评分最高的答案以获取最新回复。

      【讨论】:

      • 该插件的最后一次提交是 9 年前!这个项目已经死了。
      【解决方案3】:

      你应该看看this question 的答案。 Leiningen 使用与 maven 相同的版本控制机制,因此,例如,如果您想使用给定库的最新版本,您可以用单词“LATEST”代替版本号。您还可以指定发布版本或版本范围。再次,查看该链接上的答案。

      【讨论】:

      • 好的,所以 Maven 在这方面实现了与 Ivy 类似的功能。这很酷。我如何从 Leiningen 那里得到它?
      • @kittylyst:您只需要替换 project.clj 文件中的依赖版本字符串。因此,例如,您可能会说 :dependencies [[compojure "LATEST"]] 而不是 :dependencies [[compojure "0.4.0"]]
      • 我想我还应该警告说,如果不指定每个依赖项的确切版本,则会在项目中引入一些不确定性。最好确定已发布软件的确切版本,但对于开发来说应该没问题。
      • 同意。这只是为DEV。 CI 和更高级别的环境应该使用精确的依赖关系。
      • 似乎 tha leiningen 不再支持使用“LATEST”作为版本号。
      【解决方案4】:

      提供此信息的 Web 服务以及自述文件的标记。

      http://clj-deps.herokuapp.com

      免责声明,由我提供。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-03-01
        • 2023-02-06
        • 1970-01-01
        • 2012-07-07
        • 2014-07-07
        • 2014-10-13
        • 2013-04-23
        • 2021-10-30
        相关资源
        最近更新 更多