欢迎!请参阅关于页面以了解更多关于此功能的信息。
我遇到了一个问题,tools.namespace的refresh(v. 0.3.0)在Java 8上似乎可以工作,但在Java 11上不行。我尝试了Clojure 1.10.0和 1.10.1。在干净的虚拟机上能够复制这个问题。在两种情况下,我能够在Java 8上重新加载命名空间,但在Java 11上不行。
tools.namespace
refresh
0.3.0
1.10.0
1.10.1
不过很奇怪——在我的其他一些项目中,我可以在Java 11上重新加载命名空间。我还没有追踪到差异。(我也是tools.deps的新手,所以可能我在那里做错了什么。)
tools.deps
我在这里提供了一个复制的方法:https://github.com/thomascothran/namespace-repro
我假设这可能是我的错误,但唯一能够缩小范围的是Java版本。
参考:https://clojure.atlassian.net/browse/TNS-54
这是由于对java.classpath库已知问题的影响,该库是tools.namespace依赖的库,问题已解决并发布,但版本晚于tools.namespace当前依赖的版本。
我可以在tools.namespace中创建一个问题来修复它,但无需等待修复,您可以在项目中明确添加对java.classpath库稍后版本的依赖,并且可能使用JDK 11您的问题可以得到解决
org.clojure/java.classpath {:mvn/version "0.3.0"}
在有问题的项目中,可能存在某些其他依赖项需要较新版本的java.classpath。