gpt4 book ai didi

clojure - 如何在项目目录之外更改 Lein 的 Clojure 默认版本?

转载 作者:行者123 更新时间:2023-12-05 06:37:05 25 4
gpt4 key购买 nike

这是就与 How to change Clojure or Lein's Clojure default version? 相同的问题寻求帮助

但不是该问题的答案。尽管如此,我是否应该将其写为该线程下的答案?

在项目目录外发出“(lein repl)”命令时指定要使用的 Clojure 版本似乎是很自然的事情。当然可能有很好的设计原因不允许它,但是你认为像下面这样的错误消息,

当 Leiningen 检测到 ~/.lein/profiles.clj(或其他相关配置文件)指定的 Clojure 版本与硬编码到 Leiningen 的版本不同时显示,

会是个好主意吗?

"specifying the Clojure version to be used with certain software, such as tools.nrepl and clojure-complete, is only allowed when this command is issued within a project directory"

显然,很多人已经在 Stack Overflow 上花费了大量时间,试图找出如何做到这一点。

引用资料:

  1. “将 ~/.lein/profiles.clj 更新为 {:repl {:dependencies [^:displace [org.clojure/clojure "1.9.0"]]}} 似乎不起作用。 – Petrus塞隆 2018 年 1 月 10 日 9:05"How do you change Clojure version in Leiningen and LightTable?

  2. “我刚才在 IRC 上询问了 technomancy。他说:“REPL 的外部项目被硬编码为 lein 的 clojure 版本”。 – David J. 2014 年 2 月 24 日 19:52” How to change Clojure or Lein's Clojure default version?

  3. “这个 ^:displace 技巧不适用于 tools.nrepl 或 clojure-complete。” https://github.com/technomancy/leiningen/blob/master/doc/PROFILES.md

  4. How to upgrade nrepl version of leiningen?

最佳答案

我认为您可以尝试在您的 project.clj 中声明不同的配置文件,其中每个配置文件都有自己的 Clojure 版本。例如:

  :profiles
{;; :default [:base :system :user :provided :dev]
:server-jvm {:jvm-opts ^:replace ["-server"]}
:1.5 {:dependencies [[org.clojure/clojure "1.5.1"]]}
:1.6 {:dependencies [[org.clojure/clojure "1.6.0"]]}
:1.7 {:dependencies [[org.clojure/clojure "1.7.0"]]}
:1.8 {:dependencies [[org.clojure/clojure "1.8.0"]]}
:1.9 {:dependencies [[org.clojure/clojure "1.9.0"]]}}

现在,当运行任何 Lein 命令时,指定一个配置文件如下:

lein with-profile 1.7 repl

Clojure 1.7 的 REPL session 应该开始了。

我从 carmine sources 抓取了那个片段. Lein官方配置文件手册也有the same example .

关于clojure - 如何在项目目录之外更改 Lein 的 Clojure 默认版本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48482645/

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