clojure: profiles.clj not getting honored in some

2019-05-14 17:02发布

问题:

I'm facing the same issue that is mentioned in the last comment in https://stackoverflow.com/a/25401281/4329629 (by Yu Shen)

I don't know why adding :plugins [[cider/cider-nrepl "0.7.0"]] at ~/.lein/profiles.clj does not work. But the same expression: :plugins [[cider/cider-nrepl "0.7.0"]] at the project.clj of my project worked as expected.

Till now i thought that all my projects were behaving this way, but today i found something different. Maybe a hint to what is going wrong? The 2 projects that behave differently have the following structure:

==================== project-1/project.clj (cider does not work) ====================

(defproject clj "0.1.0-SNAPSHOT"
  :description "Frontend for stox@gryffin"
  :url "http://stox.gryff.in/"
  :dependencies [[selmer "0.6.9"]
                 [clj-time "0.6.0"]
                 [http-kit "2.1.18"]
                 [com.taoensso/timbre "3.2.1"]
                 [noir-exception "0.2.2"]
                 [im.chit/cronj "1.4.3"]
                 [environ "1.0.0"]
                 [org.clojure/tools.nrepl "0.2.3"]
                 [clojure-complete "0.2.4"]
                 [org.clojure/clojure "1.6.0"]
                 [org.clojure/data.json "0.2.5"]
                 [ring-server "0.3.1"]
                 [com.taoensso/tower "2.0.2"]
                 [com.novemberain/monger "2.0.0"]
                 [org.clojure/math.numeric-tower "0.0.4"]
                 [lib-noir "0.8.4"]]
  :jvm-opts ["-Xmx512m" "-Xms128m"]
  :plugins [[lein-environ "1.0.0"]]
  :main clj.core)

==================== project-2/project.clj (cider works) ====================

(defproject project-euler "0.1.0-SNAPSHOT"
  :description "Solve problems on project-euler website"
  :url "http://projecteuler.net/problems"
  :license {:name "Eclipse Public License"
            :url "http://www.eclipse.org/legal/epl-v10.html"}
  :dependencies [[org.clojure/clojure "1.6.0"]
                 [org.clojure/core.memoize "0.5.6"]
                 [expectations "2.0.13"]
                 [org.clojure/math.numeric-tower "0.0.4"]
                 [org.clojure/math.combinatorics "0.0.8"]
                 [criterium "0.4.3"]
                 [org.clojure/tools.trace "0.7.8"]
                 [com.taoensso/timbre "3.2.1"]]
  :plugins [[lein-autoexpect "1.0"]])

==================== ~/.lein/profiles.clj ====================

{:user {:plugins [[cider/cider-nrepl "0.9.0-SNAPSHOT"]]}}

EDIT: 1. error message seen in cider for project-1

; CIDER 0.9.0alpha (package: 20150114.512) (Java 1.7.0_55, Clojure 1.6.0, nREPL 0.2.6)
WARNING: The following required nREPL ops are not supported: 
apropos classpath complete eldoc info inspect-start inspect-refresh inspect-pop inspect-push inspect-reset macroexpand ns-list ns-vars resource stacktrace toggle-trace-var toggle-trace-ns undef
Please, install (or update) cider-nrepl 0.9.0-SNAPSHOT and restart CIDER
WARNING: CIDER's version (0.9.0-snapshot) does not match cider-nrepl's version (not installed)
  1. (snipped) lein deps :tree

    warn [cider/cider-nrepl "0.9.0-20150118.121230-2"] [cljs-tooling "0.1.3" :exclusions [[org.clojure/clojure]]] [compliment "0.2.1-20141130.115631-1" :exclusions [[org.clojure/clojure]]] [defprecated "0.1.1"] [org.clojure/java.classpath "0.2.0" :exclusions [[org.clojure/clojure]]] [org.clojure/tools.trace "0.7.8" :exclusions [[org.clojure/clojure]]] [org.tcrawley/dynapath "0.2.3" :exclusions [[org.clojure/clojure]]]

回答1:

$ lein version
Leiningen 2.5.1 on Java 1.8.0_25 OpenJDK 64-Bit Server VM

My ~/.lein/profiles.clj:

{:user {:plugins [[cider/cider-nrepl "0.9.0-SNAPSHOT"]]
        :dependencies [[org.clojure/tools.nrepl "0.2.7"]]}}

(exactly as https://stackoverflow.com/a/15172955/1047788 suggests)

Running lein repl in an empty directory:

$ lein repl
nREPL server started on port 40595 on host 127.0.0.1 - nrepl://127.0.0.1:40595
REPL-y 0.3.5, nREPL 0.2.6
Clojure 1.6.0
OpenJDK 64-Bit Server VM 1.8.0_25-b18
Docs: (doc function-name-here)

after creating a project with lein new app; cd app

$ lein repl
Retrieving org/clojure/clojure/1.6.0/clojure-1.6.0.jar from central
nREPL server started on port 55421 on host 127.0.0.1 - nrepl://127.0.0.1:55421
REPL-y 0.3.5, nREPL 0.2.7
Clojure 1.6.0

I am inclined to believe this might be a manifestation of some bug i Leiningen, but I am not sure... (why is it downloading clojure?)