请在2024年Clojure状态调查中分享您的想法!

欢迎!有关本站工作方式的更多信息,请查阅关于页面。

–1

我在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

Aaah,我明白了。只是记录一下我是如何得出错误结论的

我从 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
...

然后 wonder 为什么它下载了 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”... 哎。

编辑:哦,等等,在文本更深的地方有些关于这个的内容,在第三段。抱歉。
哈哈哈!整个部分都叫做“使用 tools.build” :) 然后,它解释了为什么。
...