请分享您的看法,参加2024年Clojure现状调查!

欢迎!请在关于页面了解此工作的更多信息。

0
REPL

我想检查项目从REPL中加载了哪些依赖及其版本。这能做到吗?如果可以,我该如何操作?

我正在工作的项目是通过一个相当复杂的脚本来启动的,这使得了解某些依赖的版本略有困难。我想到的是,一旦有了REPL,问题就解决了。

这是一个tools.deps项目

2 个答案

+1
 
最佳答案

您可以使用以下方法检查运行时类路径:

(System/getProperty "java.class.path")
+1
by

对于给定的命名空间,您可以获取资源将被(或已)从中加载的完整路径。

user=> (clojure.java.io/resource "clojure/core.clj")
#object[java.net.URL 0x59221b97 "jar:file:/home/justin/.m2/repository/org/clojure/clojure/1.10.1/clojure-1.10.1.jar!/clojure/core.clj"]

这包括jar名称中包的版本(否则将揭示代码将被从哪个文件路径加载)。

by
我还使用了在另一个答案中共享的Alex的方法,但有时这种方法可以揭示其他情况下不明显的事物,例如收藏夹意外/出乎意料地捆绑的.clj或.class文件。
...