欢迎!请查看关于页面,了解更多的详细信息。
我在类路径中包含了.m2/repository/org/clojure/clojure/1.10.1/clojure-1.10.1-sources.jar,目的是为了启用(自定义)IDE 工具。
.m2/repository/org/clojure/clojure/1.10.1/clojure-1.10.1-sources.jar
这样做会在启动lein repl时引发以下警告
lein repl
/Users/vemv/.m2/repository/org/clojure/clojure/1.10.1/clojure-1.10.1-sources.jar(clojure/asm/SymbolTable.java):49: error: cannot access Symbol private static class Entry extends Symbol { ^ bad source file: /Users/vemv/.m2/repository/org/clojure/clojure/1.10.1/clojure-1.10.1-sources.jar(clojure/asm/Symbol.java) file does not contain class clojure.asm.Symbol Please remove or make sure it appears in the correct subdirectory of the sourcepath.
相比之下,没有其他"sources" .jar 会引起任何警告。我可以有高达数百个此类"sources" jar。
"sources"
也许这个文件有一些细微的/残留的问题,比如与隐私修饰符、包结构等相关?
如果这样做是无害的,那么在只有一个类库中的单个类是唯一这个问题实例的情况下(而不是数百个其他 .jars)修复它将特别令人满意
作为参考,我还发现另一个人遇到了相同的问题:https://clojurians-log.clojureverse.org/clojure/2019-06-23/1561323947.040200
顺便说一下,这看起来可能是javac的副产品,我几乎可以肯定lein repl没有隐式调用javac。文档说明了这一点:https://github.com/technomancy/leiningen/blob/0f456829a8b21335aa86390f3ee3d0dcc68410d6/doc/MIXED_PROJECTS.md#java-source-compilation
javac
我在用 JDK8。
这个问题比我预期的更微妙,因为它是由特定的工具引起的。
我在这里打开了一个问题:https://github.com/clojure-emacs/refactor-nrepl/issues/290