请分享您的想法,参加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。

也许这个文件有一些细微的/残留的问题,比如与隐私修饰符、包结构等相关?

如果这样做是无害的,那么在只有一个类库中的单个类是唯一这个问题实例的情况下(而不是数百个其他 .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

我在用 JDK8。

1 个答案

0
 
最佳答案

这个问题比我预期的更微妙,因为它是由特定的工具引起的。

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

...