2024 Clojure现状调查中分享您的看法!

欢迎!请查阅关于页面以获取更多关于如何使用本站的信息。

–1
java.data

我看到您已升级了clojure/tools.logging中的log4j依赖项。
请问能否也为clojure/java.data做同样的处理?这样可以使很多项目依赖的seancorfield/next-jdbc等也能升级?
提前感谢

共有3个答案

0

tools.logging和java.data自身不依赖于log4j,但可以通过添加依赖来使用它。

tools.logging已更新为使用新版本进行测试,但对用户来说这不是严格必要的,同样,java.data也不依赖于log4j,也不需要更新。

我将java.data与最新的tools.logging更新到1.0.95版发布(但请注意,这不会改变任何log4j依赖项,因为这仅是tools.logging的测试依赖)。
0

org.clojure/java.data 不要将 log4j 添加到依赖中。

您可以通过运行以下命令来检查它

clj -Srepro -Sdeps '{:deps {org.clojure/java.data {:mvn/version "1.0.95"}}}' -Stree

org.clojure/clojure 1.10.3
  . org.clojure/spec.alpha 0.2.194
  . org.clojure/core.specs.alpha 0.2.56
org.clojure/java.data 1.0.95
  . org.clojure/tools.logging 1.2.1

正如 Alex 解释的那样,data.java 或 tools.logging 两个都无需依赖 log4j

您可以在代码中确认这一点

https://github.com/clojure/tools.logging/blob/tools.logging-1.1.0/pom.xml#L31

仅在测试范围内列出(使用时不会包括在类路径中)

在 maven 元数据中也是这样(同样仅列出测试依赖)

https://mvnrepository.com/artifact/org.clojure/tools.logging/1.1.0


编辑
编辑:以回答的方式重新发布
0

啊,我明白了。仅为了记录,我是如何得出这个错误结论的

我从 Maven 仓库中删除了 log4j

rm -rf ~/.m2/repository/org/apache/logging/log4j/

运行我的构建

$ clojure -X:depstar uberjar :jar target/foo.jar
Downloading: org/apache/logging/log4j/log4j-core/2.14.1/log4j-core-2.14.1.pom from central
Downloading: org/apache/logging/log4j/log4j/2.14.1/log4j-2.14.1.pom from central
Downloading: org/apache/logging/logging-parent/3/logging-parent-3.pom from central
Downloading: org/apache/logging/log4j/log4j-api/2.14.1/log4j-api-2.14.1.pom from central
Downloading: org/apache/logging/log4j/log4j-core/2.14.1/log4j-core-2.14.1.jar from central
Downloading: org/apache/logging/log4j/log4j-api/2.14.1/log4j-api-2.14.1.jar from central
...

然后我疑惑为什么它还下载了 log4j?

然后我看到了 Alex 在 clojure/tools.logging 中的 update log4j again 提交
https://github.com/clojure/tools.logging/commit/8e8f899c00d79b03a7f5a3a83e52433d689feaf7
,(没有注意到 pom.xml),并且错过了它仅在 project.cljdev 配置文件中,因为顶部较高且不会列出在 github 的更改/删除列表中..

现在在纠正之后我发现,它在我的 deps.edn 中的构建依赖项 depstar 上

:aliases
 {:depstar
  {:replace-deps
   {com.github.seancorfield/depstar {:mvn/version "2.1.303"}}
   :ns-default hf.depstar
   :exec-args {}}}

该依赖项依赖于 log4j。

感谢大家的帮助。

编辑:格式化

depstar 已经归档,我已经询问人们转移到 tools.build 已经有三个月了

https://github.com/seancorfield/depstar#use-toolsbuild
哦,顺便说一下,我从 John 那里基本上复制粘贴了别名
https://github.com/practicalli/clojure-deps-edn/blob/live/deps.edn ... 这已经完成了我所需要的功能。更新它...大功告成,继续前进。

现在,当我阅读您的 README.md 时,我找不到任何“已弃用,请使用 tools.build 代替”... 哼。

编辑:哦等等,在文本的更深层次有关于这一点的内容,在第3段中。抱歉。
LOL!整个部分都叫“使用 tools.build” :) 然后解释了原因。
...