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,我明白了。仅为了记录,我是如何得出错误结论的

我将log4j从我的Maven仓库中删除了

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?

然后我看到了在clojure/tools.logging中的Alex的《再次更新log4j》提交
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" :) 然后解释了原因。
...