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

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

然后我想知道为什么它会下载log4j?

然后我看到了Alex在clojure/tools.logging中的“再次更新log4j”提交
https://github.com/clojure/tools.logging/commit/8e8f899c00d79b03a7f5a3a83e52433d689feaf7
(没有注意到pom.xml),并且错过了它只存在于project.clj的dev配置文件中,因为它在文件上方,并且没有列出在GitHub的添加/删除列表中..

现在在我改正后,我看到它是我deps.edn中的构建依赖项

: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 代替”的说明...嗯。

编辑:哦,等等,关于这一点,在第三段文字中还有关于这种更深层次的说明。抱歉。
用户:
LOL!整个部分都叫做“使用 tools.build” :) 然后它解释了原因。
欢迎来到 Clojure Q&A,在这里您可以提出问题,并从 Clojure 社区的成员那里获得答案。
...