欢迎!请参阅关于页面以获取更多关于它是如何工作的信息。
我在类路径中包含.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"
或许这个文件有一些小问题,比如与访问修饰符、包结构等相关的问题?
如果这样做没有危害,那就很希望修复它,尤其是在单个库中只有一个类出现了这个问题时(而非其他的数百个.jar)
作为参考,我也发现另一个人遇到了相同的问题: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