在leiningen的REPL中显示已加载的依赖项

4

我遇到了问题,因为我使用的库似乎与已发布的文档存在冲突。之前我安装正确版本时就遇到过一些问题,我想知道是否这是原因。

有没有办法打印出在repl中加载了哪些jar文件,以便我进行检查?

4个回答

16

您还可以使用query lein来:

  • 使用lein classpath查询classpath
  • 使用lein deps :tree打印依赖树

6

以下可能会有所帮助:

lein deps :tree - 显示被拉入的依赖树

[library "version" :exclusions [some-other-lib "version"]] - 排除由某些库引入的 some-other-lib

您可以手动定义自己的依赖矢量来正确拉入 some-other-lib 的版本。


5
(System/getProperty "java.class.path")

这不会告诉我加载了哪些特定的JAR包,对吧? - Xodarap
1
实际上,即使它们因匹配通配符(*在类路径字符串中)而被包含在类路径中,但是JAR文件仍然是其自己独立的条目,由System/getProperty返回。 - Michał Marczyk

0

有几个选项:

  • 使用Java Interrop:(System/getProperty "java.class.path")(println (seq (.getURLs (java.lang.ClassLoader/getSystemClassLoader))))
  • clojure/java.classpath 包含有用的函数,例如 system-classpath
  • leinlein classpathlein deps :tree
  • bootboot show -p,以及boot environnement中的有用函数。也许可以看看martinklepsch/boot-deps

对于boot,我还编写了nha/boot-deps来帮助管理依赖冲突。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接