我正在使用tools.namespace来为REPL上的名称空间提供智能重新加载。但是,当致电refresh
或refresh-all
时,会引发错误。clojure.tools /名称空间刷新失败,并显示“No namespace:foo”
user=> (require '[clojure.tools.namespace.repl :as tn])
user=> (tn/refresh)
:reloading (ep31.common ep31.routes ep31.config ep31.application user ep31.common-test ep31.example-test)
:error-while-loading user
java.lang.Exception: No namespace: ep31.config, compiling:(user.clj:1:1)
而且似乎在(require ep31.config)
作品没有错误,但事后命名空间不能实际上说明这个奇怪的状态结束。
这是正确的。 Leiningen默认将'target/classes'放在类路径上,原因有两个:1)为已编译的Java源提供应用程序,2)AOT编译的输出目录('* compile-path *')必须为on类路径。 –
因此,如果你在做'lein uberjar'之后做了'lein clean',你不会遇到你的问题吗?或者,只要你进入一个糟糕的状态,就像你在问题中所描述的那样,“干净”。 –