2024 Clojure状况调查中分享您的想法!

欢迎!请参阅关于页面以获取更多关于它是如何工作的信息。

0
编译器
编辑

我在类路径中包含.m2/repository/org/clojure/clojure/1.10.1/clojure-1.10.1-sources.jar,这是为了启用(自定义)IDE工具。

这样做会导致启动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。

或许这个文件有一些小问题,比如与访问修饰符、包结构等相关的问题?

如果这样做没有危害,那就很希望修复它,尤其是在单个库中只有一个类出现了这个问题时(而非其他的数百个.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

我使用的是JDK8。

1 答案

0
 
最佳答案

问题比我想的要更为微妙,因为它是由一个特定工具引起的。

我在这里创建了一个问题: https://github.com/clojure-emacs/refactor-nrepl/issues/290

...