这是与How to change Clojure or Lein's Clojure default version?
相同的问题寻求帮助但不是该问题的回答。我应该在那个帖子下写下它作为答案吗?
指定在项目目录之外发出“(lein repl)”命令时要使用的Clojure版本似乎是一件很自然的事情。当然,不允许它可能有很好的设计原因,但您认为如下所示的错误消息
当Leiningen检测到〜/ .lein / profiles.clj(或其他相关的配置文件)指定与硬编码到Leiningen的不同Clojure版本时显示,
会是一个好主意吗?
"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上试图找出如何做到这一点。
参考文献:
“将〜/ .lein / profiles.clj更新为{:repl {:dependencies [^:displace [org.clojure / clojure”1.9.0“]]}}似乎不起作用。 - Petrus Theron Jan 10 Jan 10 2018 at 9:05“How do you change Clojure version in Leiningen and LightTable?
“我刚刚询问了IRC的技术问题。他说:”REPL的外部项目被硬编码为lein的版本的clojure“。 - David J. 2014年2月24日19:52”How to change Clojure or Lein's Clojure default version?
“这个^:displace技巧不适用于tools.nrepl或clojure-complete。” https://github.com/technomancy/leiningen/blob/master/doc/PROFILES.md
答案 0 :(得分:1)
我认为您可能会尝试在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会议应该开始。
我从carmine sources抓起了那个片段。官方Lein个人资料手册也有the same example。