lein repl压缩文件为空异常

4
当我在项目根目录输入 lein repl时,我会收到错误信息。我已经尝试删除家目录中的 .lein 目录并重新下载 lein,但这对我没用。
可能是重复问题: 使用Leiningen时遇到ExceptionInInitializerError错误
Exception in thread "Thread-1" java.util.zip.ZipException: zip file is empty
at java.util.zip.ZipFile.open(Native Method)
at java.util.zip.ZipFile.<init>(ZipFile.java:214)
at java.util.zip.ZipFile.<init>(ZipFile.java:144)
at java.util.jar.JarFile.<init>(JarFile.java:153)
at java.util.jar.JarFile.<init>(JarFile.java:117)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:525)
at clojure.lang.Reflector.invokeConstructor(Reflector.java:180)
at leiningen.core.classpath$extract_native_deps.invoke(classpath.clj:43)
at clojure.lang.AFn.applyToHelper(AFn.java:167)
at clojure.lang.AFn.applyTo(AFn.java:151)
at clojure.core$apply.invoke(core.clj:617)
at leiningen.core.classpath$when_stale.doInvoke(classpath.clj:66)
at clojure.lang.RestFn.invoke(RestFn.java:580)
at leiningen.core.classpath$resolve_dependencies.doInvoke(classpath.clj:231)
at clojure.lang.RestFn.invoke(RestFn.java:425)
at leiningen.core.eval$prep.invoke(eval.clj:54)
at leiningen.core.eval$eval_in_project.invoke(eval.clj:282)
at leiningen.repl$start_server.invoke(repl.clj:117)
at leiningen.repl$server$fn__6110.invoke(repl.clj:173)
at clojure.lang.AFn.applyToHelper(AFn.java:159)
at clojure.lang.AFn.applyTo(AFn.java:151)
at clojure.core$apply.invoke(core.clj:617)
at clojure.core$with_bindings_STAR_.doInvoke(core.clj:1788)
at clojure.lang.RestFn.invoke(RestFn.java:425)
at clojure.lang.AFn.applyToHelper(AFn.java:163)
at clojure.lang.RestFn.applyTo(RestFn.java:132)
at clojure.core$apply.invoke(core.clj:621)
at clojure.core$bound_fn_STAR_$fn__4102.doInvoke(core.clj:1810)
at clojure.lang.RestFn.invoke(RestFn.java:397)
at clojure.lang.AFn.run(AFn.java:24)
at java.lang.Thread.run(Thread.java:722)

编辑:我在一台运行Ubuntu 12.10 64位操作系统的机器上使用Leiningen 2.1.2。

注意:如果我在项目根目录之外运行lein repl,它是正常的。


当你说再次下载lein时,你的意思是指你遇到了完全相同的错误吗? - JohnJ
你正在使用 Lein 1 还是 2? - Arthur Ulfeldt
@JohnJ:是的,完全相同的错误。 - Herks
3个回答

5

使用lein2时,我曾通过运行以下命令成功地解决了这个问题:

lein clean

我的猜测是,您可以将 ~/.m2/repository 移到其他地方,然后再尝试一次。

1
这是因为您不能将uberjar的名称与Leiningen内部命名的jar文件相同。只需确保在: uberjar ... : uberjar-name中添加类似“name-0.1.0- STABLE ”或任何其他类似SNAPSHOT或LATEST的内容即可。

0

对我来说什么都不起作用(清理,删除~/.m2)。我甚至去了另一台机器。然后我想也许lein看到这两个条目在一起时感到困惑:

:jar-name "my-server.jar"
:uberjar-name "my-server.jar"

所以我注释掉了:uberjar-name,然后运行了lein jar,它没有给我异常-一直运行到结束。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接