【问题标题】:What causes error java.io.FileNotFoundException: Could not locate nrepl/server__init.class or nrepl/server.clj on classpath on boot?是什么导致错误 java.io.FileNotFoundException:在引导时无法在类路径上找到 nrepl/server__init.class 或 nrepl/server.clj?
【发布时间】:2021-05-13 18:42:57
【问题描述】:

当我尝试使用 Clojure 项目启动引导时,我收到以下错误:

PS F:\osob\Clojure\modern-cljs> boot serve -d target watch reload cljs target
Starting reload server on ws://localhost:55343
                                       java.lang.Thread.run
         java.util.concurrent.ThreadPoolExecutor$Worker.run
          java.util.concurrent.ThreadPoolExecutor.runWorker
                        java.util.concurrent.FutureTask.run
                                                        ...
                        clojure.core/binding-conveyor-fn/fn                     core.clj: 1916
                                          boot.core/boot/fn                     core.clj: 1031
                         
;skipped some text


                                       clojure.core/load/fn                     core.clj: 5866
                                                        ...
          java.io.FileNotFoundException: Could not locate nrepl/server__init.class or nrepl/server.clj on classpath.
clojure.lang.Compiler$CompilerException: java.io.FileNotFoundException: Could not locate nrepl/server__init.class or nrepl/server.clj on classpath., compiling:(boot/repl_server.clj:1:1)
             clojure.lang.ExceptionInfo: java.io.FileNotFoundException: Could not locate nrepl/server__init.class or nrepl/server.clj on classpath., compiling:(boot/repl_server.clj:1:1)
    line: 15

我有以下部门:

 :dependencies '[[adzerk/boot-cljs "1.7.228-2"]
                 [pandeiro/boot-http "0.7.6"]
                 [org.clojure/tools.nrepl "0.2.12"]
                 [adzerk/boot-reload "0.5.1"]]) ;; add boot-reload

(require '[adzerk.boot-cljs :refer [cljs]]
         '[pandeiro.boot-http :refer [serve]]
         '[adzerk.boot-reload :refer [reload]]) ;; make reload visible

问题是由nrepl引起的。

【问题讨论】:

    标签: clojure clojurescript


    【解决方案1】:

    [pandeiro/boot-http "0.7.6"] 更改为[pandeiro/boot-http "0.7.5"] 解决了这个问题。

    【讨论】:

    • org.clojure/tools.nrepl 是一个非常旧的版本,命名空间在移至nrepl/nrepl 后不久就发生了变化——这是boot-http 的最新版本所期望的。这就是降级该库使其工作的原因。但是您需要小心,因为现在很多编辑器工具都假定使用新版本的 nREPL。
    • 所以我应该使用 nrepl/nrepl?
    • 我认为更新所有依赖项并切换到 nrepl/nrepl 会让您的生活更轻松,是的。
    猜你喜欢
    • 1970-01-01
    • 2015-05-10
    • 1970-01-01
    • 2014-10-09
    • 2012-12-17
    • 1970-01-01
    • 1970-01-01
    • 2012-09-25
    • 1970-01-01
    相关资源
    最近更新 更多