构建 ring server-headless 工作 -- lein ring server-headless
-- 但是当我尝试构建 war 或 uberwar 时,我收到以下错误,并且无法弄清楚为什么会发生这种情况。
No namespaces to :aot compile listed in project.clj.
Exception in thread "main" java.lang.ExceptionInInitializerError, compiling:(ring/util/servlet.clj:62)
at clojure.lang.Compiler.analyzeSeq(Compiler.java:6416)
at clojure.lang.Compiler.analyze(Compiler.java:6216)
...
Caused by: java.lang.ExceptionInInitializerError
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:247)
at clojure.lang.RT.classForName(RT.java:2013)
at clojure.lang.Compiler$HostExpr.maybeClass(Compiler.java:938)
at clojure.lang.Compiler$HostExpr.access$400(Compiler.java:710)
at clojure.lang.Compiler.macroexpand1(Compiler.java:6342)
at clojure.lang.Compiler.analyzeSeq(Compiler.java:6395)
... 69 more
Caused by: java.lang.Exception: Cyclic load dependency: [ /servlet ]->/ring/util/servlet->[ /servlet ]
at clojure.core$check_cyclic_dependency.invoke(core.clj:5288)
at clojure.core$load.doInvoke(core.clj:5383)
at clojure.lang.RestFn.invoke(RestFn.java:408)
at clojure.lang.Var.invoke(Var.java:401)
at servlet.<clinit>(Unknown Source)
... 76 more
我的 project.clj 文件是:
(defproject myproj "0.1"
:description "the sample"
:dependencies [
[org.clojure/clojure "1.3.0"]
[compojure "1.0.4"]
[hiccup "1.0.0"]
[clj-json "0.5.0"]
[ring/ring "1.1.0"]
[clj-http "0.1.1"]
]
:plugins [
[lein-ring "0.7.0"]
]
:ring {:handler routes/start})
如果我删除了
:ring {:handler routes/start}
,那么我会在其他地方得到一个 NPE。我不知道我的 project.clj 中是否遗漏了某些内容,或者该用例的特定版本的 lein 是否已损坏。有人可以为我澄清这一点吗?
最佳答案
我遇到了同样的问题,就我而言,解决方案就像做一个一样简单
之前
我认为实际的问题是,在某些时候,我的处理程序指向一个不正确/不存在的处理程序,并且在 target/classes 目录中留下了一个 servlet.clj。进行清理将删除此文件。
关于clojure - 构建uberwar时出现Lein循环依赖错误的原因是什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10674155/