2016-10-18 8 views
2

Clojure [org.clojure/clojure "1.9.0-alpha13"]의 알파 버전이 필요한 clojure.spec을 사용하여 lein-resource을 업데이트하려고합니다. 종속성을 추가하면 컴파일이 잘되지만 REPL 및 테스트에서는 Clojure 1.8.0의 lein 버전을 사용합니다.최신 Clojure에 대한 Leiningen 플러그인 문제 테스트

: eval-in-leiningen을 false로 설정하면 Clojure 종속성을 존중합니다.

플러그인으로 실행하는 기능을 비활성화하지 않고 다른 버전의 Clojure로 Lein Plugin을 테스트하려면 어떻게해야합니까?

답변

0

project.clj이 (가) 파일 ~/.lein/profiles.clj에 의해 무효화되고있는 것으로 보입니다. 광산은 다음과 같습니다 :이처럼 project.clj 보일 것입니다 뭔가를 믿고있어

> cat ~/.lein/profiles.clj 
{ :user { 
    :plugins [ 
     [com.jakemccrary/lein-test-refresh "0.16.0"] 
     [jonase/eastwood "0.2.3"] 
     [lein-ancient  "0.6.0"] 
     [lein-codox  "0.9.3"] 
     [lein-exec  "0.3.6"] 
    ] 
    :dependencies [ 
     [org.clojure/clojure "1.9.0-alpha13"] 
    ] 
    :test-refresh { :quiet true 
        :changes-only true } 
    ; :jvm-opts ["-Xms1g" "-Xmx4g" ] ; "-server" 
    } 
} 

:

(defproject clj "0.1.0-SNAPSHOT" 
    :description "FIXME: write description" 
    :url "http://example.com/FIXME" 
    :license {:name "Eclipse Public License" 
      :url "http://www.eclipse.org/legal/epl-v10.html"} 
    :dependencies [ 
    [org.clojure/clojure "1.9.0-alpha13"] 
    [tupelo "0.9.9"] 
    ] 
    :java-source-paths ["/home/alan/xpr/src"] 
    :main ^:skip-aot clj.core 
    :target-path "target/%s" 
    :profiles {:dev  {:dependencies [[org.clojure/test.check "0.9.0"]] } 
      :uberjar {:aot :all}} 
) 

~/.lein/profiles.clj을 수정하고 당신은 아무 문제가 없습니다.

0

문제는 project.clj에서 :eval-in-leiningen true입니다. 약간의 캐치 -22입니다. 그곳에 있으면 Clojure 버전이 lein으로 설치되어 정의 된 상태로 테스트가 실행됩니다. 코드가 제거되면 코드의 종속 변수가 해결되지 않습니다.