如何在Windows上设置lein cooper?

时间:2018-01-02 13:20:44

标签: clojurescript leiningen figwheel

我已经关注了Windows上的Leinigen install instructions(我的路径中有c:\leinigen\,这是lein.bat所在的位置)。我现在正在尝试使用lein-cooper,但这给了我以下错误:

java.io.IOException: Cannot run program "lein": CreateProcess error=2, The system cannot find the file specified
 at java.lang.ProcessBuilder.start (:-1)
    me.raynes.conch.low_level$proc.invokeStatic (low_level.clj:33)
    me.raynes.conch.low_level$proc.doInvoke (low_level.clj:7)
    clojure.lang.RestFn.applyTo (RestFn.java:137)
    clojure.core$apply.invokeStatic (core.clj:646)
    clojure.core$apply.invoke (core.clj:641)
    leiningen.cooper$get_procs_from_project$iter__657__661$fn__662.invoke (cooper.clj:61)
    clojure.lang.LazySeq.sval (LazySeq.java:40)
    clojure.lang.LazySeq.seq (LazySeq.java:49)
    clojure.lang.RT.seq (RT.java:521)
    clojure.core$seq__4357.invokeStatic (core.clj:137)
    clojure.core$dorun.invokeStatic (core.clj:3024)
    clojure.core$doall.invokeStatic (core.clj:3039)
    clojure.core$doall.invoke (core.clj:3039)
    leiningen.cooper$get_procs_from_project.invokeStatic (cooper.clj:59)
    leiningen.cooper$get_procs_from_project.invoke (cooper.clj:56)
    leiningen.cooper$cooper.invokeStatic (cooper.clj:145)
    leiningen.cooper$cooper.doInvoke (cooper.clj:111)
    clojure.lang.RestFn.invoke (RestFn.java:410)
    clojure.lang.Var.invoke (Var.java:379)
    clojure.lang.AFn.applyToHelper (AFn.java:154)
    clojure.lang.Var.applyTo (Var.java:700)
    clojure.core$apply.invokeStatic (core.clj:648)
    clojure.core$apply.invoke (core.clj:641)
    leiningen.core.main$partial_task$fn__4667.doInvoke (main.clj:284)
    clojure.lang.RestFn.invoke (RestFn.java:410)
    clojure.lang.AFn.applyToHelper (AFn.java:154)
    clojure.lang.RestFn.applyTo (RestFn.java:132)
    clojure.lang.AFunction$1.doInvoke (AFunction.java:29)
    clojure.lang.RestFn.applyTo (RestFn.java:137)
    clojure.core$apply.invokeStatic (core.clj:648)
    clojure.core$apply.invoke (core.clj:641)
    leiningen.core.main$apply_task.invokeStatic (main.clj:334)
    leiningen.core.main$apply_task.invoke (main.clj:320)
    leiningen.core.main$resolve_and_apply.invokeStatic (main.clj:340)
    leiningen.core.main$resolve_and_apply.invoke (main.clj:336)
    leiningen.core.main$_main$fn__4734.invoke (main.clj:420)
    leiningen.core.main$_main.invokeStatic (main.clj:411)
    leiningen.core.main$_main.doInvoke (main.clj:408)
    clojure.lang.RestFn.invoke (RestFn.java:408)
    clojure.lang.Var.invoke (Var.java:379)
    clojure.lang.AFn.applyToHelper (AFn.java:154)
    clojure.lang.Var.applyTo (Var.java:700)
    clojure.core$apply.invokeStatic (core.clj:646)
    clojure.main$main_opt.invokeStatic (main.clj:314)
    clojure.main$main_opt.invoke (main.clj:310)
    clojure.main$main.invokeStatic (main.clj:421)
    clojure.main$main.doInvoke (main.clj:384)
    clojure.lang.RestFn.invoke (RestFn.java:436)
    clojure.lang.Var.invoke (Var.java:388)
    clojure.lang.AFn.applyToHelper (AFn.java:160)
    clojure.lang.Var.applyTo (Var.java:700)
    clojure.main.main (main.java:37)
Caused by: java.io.IOException: CreateProcess error=2, The system cannot find the file specified
 at java.lang.ProcessImpl.create (:-2)
    java.lang.ProcessImpl.<init> (:-1)
    java.lang.ProcessImpl.start (:-1)
    java.lang.ProcessBuilder.start (:-1)
    me.raynes.conch.low_level$proc.invokeStatic (low_level.clj:33)
    me.raynes.conch.low_level$proc.doInvoke (low_level.clj:7)
    clojure.lang.RestFn.applyTo (RestFn.java:137)
    clojure.core$apply.invokeStatic (core.clj:646)
    clojure.core$apply.invoke (core.clj:641)
    leiningen.cooper$get_procs_from_project$iter__657__661$fn__662.invoke (cooper.clj:61)
    clojure.lang.LazySeq.sval (LazySeq.java:40)
    clojure.lang.LazySeq.seq (LazySeq.java:49)
    clojure.lang.RT.seq (RT.java:521)
    clojure.core$seq__4357.invokeStatic (core.clj:137)
    clojure.core$dorun.invokeStatic (core.clj:3024)
    clojure.core$doall.invokeStatic (core.clj:3039)
    clojure.core$doall.invoke (core.clj:3039)
    leiningen.cooper$get_procs_from_project.invokeStatic (cooper.clj:59)
    leiningen.cooper$get_procs_from_project.invoke (cooper.clj:56)
    leiningen.cooper$cooper.invokeStatic (cooper.clj:145)
    leiningen.cooper$cooper.doInvoke (cooper.clj:111)
    clojure.lang.RestFn.invoke (RestFn.java:410)
    clojure.lang.Var.invoke (Var.java:379)
    clojure.lang.AFn.applyToHelper (AFn.java:154)
    clojure.lang.Var.applyTo (Var.java:700)
    clojure.core$apply.invokeStatic (core.clj:648)
    clojure.core$apply.invoke (core.clj:641)
    leiningen.core.main$partial_task$fn__4667.doInvoke (main.clj:284)
    clojure.lang.RestFn.invoke (RestFn.java:410)
    clojure.lang.AFn.applyToHelper (AFn.java:154)
    clojure.lang.RestFn.applyTo (RestFn.java:132)
    clojure.lang.AFunction$1.doInvoke (AFunction.java:29)
    clojure.lang.RestFn.applyTo (RestFn.java:137)
    clojure.core$apply.invokeStatic (core.clj:648)
    clojure.core$apply.invoke (core.clj:641)
    leiningen.core.main$apply_task.invokeStatic (main.clj:334)
    leiningen.core.main$apply_task.invoke (main.clj:320)
    leiningen.core.main$resolve_and_apply.invokeStatic (main.clj:340)
    leiningen.core.main$resolve_and_apply.invoke (main.clj:336)
    leiningen.core.main$_main$fn__4734.invoke (main.clj:420)
    leiningen.core.main$_main.invokeStatic (main.clj:411)
    leiningen.core.main$_main.doInvoke (main.clj:408)
    clojure.lang.RestFn.invoke (RestFn.java:408)
    clojure.lang.Var.invoke (Var.java:379)
    clojure.lang.AFn.applyToHelper (AFn.java:154)
    clojure.lang.Var.applyTo (Var.java:700)
    clojure.core$apply.invokeStatic (core.clj:646)
    clojure.main$main_opt.invokeStatic (main.clj:314)
    clojure.main$main_opt.invoke (main.clj:310)
    clojure.main$main.invokeStatic (main.clj:421)
    clojure.main$main.doInvoke (main.clj:384)
    clojure.lang.RestFn.invoke (RestFn.java:436)
    clojure.lang.Var.invoke (Var.java:388)
    clojure.lang.AFn.applyToHelper (AFn.java:160)
    clojure.lang.Var.applyTo (Var.java:700)
    clojure.main.main (main.java:37)

当我从Powershell提示符运行lein cooper时,我得到了上述内容。我有一个完整的项目,这对我的同事的OSX起作用,但在Windows上,山雀没有用。

我使用以下项目文件创建了一个较小的repro:

(defproject cooper.repro "0.0.1"
    :dependencies [[org.clojure/clojure "1.9.0"]
                [org.clojure/clojurescript "1.9.946"]]

    :plugins [[lein-cljsbuild "1.1.7"]
            [lein-cooper "1.2.2"]
            [lein-figwheel "0.5.14"]]

    :source-paths ["src/"]

    :cooper {"cljs" ["lein" "figwheel"]}

    :figwheel {:http-server-root "./" :server-port 3000}

    :cljsbuild {:builds [{
        :id "dev" 
        :source-paths ["src"] 
        :figwheel true
        :compiler {
            :main hello-world 
            :asset-path "js/out" 
            :output-to "resources/public/exmple.js" 
            :output-dir "resources/public/out"
        }}]}
)

我的src文件夹只包含一个只有命名空间的hello-world clojurescript文件。如果我只是从命令行运行lein figwheel而不是 按预期工作(即使它没有做任何有趣的事情)。

起初我认为这是一个与路径相关的问题,所以我重新启动了我的机器,但这并没有帮助。

Google search gives zero useful results

有关修复此问题的任何提示吗?或者我应该提交一个错误(如果是这样的话:在哪里?对于figwheel,还是lein-cooper?)。

0 个答案:

没有答案