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

欢迎!请查看关于页面以了解更多关于这里如何工作的信息。

0投票
ClojureScript

步骤

1) 创建 {{project.clj}} 文件

(defproject foo "1.0.0" :dependencies [[org.clojure/clojurescript "1.10.439"]] :pedantic? :abort)

2) 运行 {{lein deps}}。

实际结果:由于依赖冲突而失败

`
找到可能令人困惑的依赖项
[org.clojure/clojurescript "1.10.439"] -> [com.google.javascript/closure-compiler-unshaded "v20180805"] -> [com.google.errorprone/error_prone_annotations "2.0.18"]
覆盖
[org.clojure/clojurescript "1.10.439"] -> [com.google.javascript/closure-compiler-unshaded "v20180805"] -> [com.google.guava/guava "25.1-jre"] -> [com.google.errorprone/error_prone_annotations "2.1.3"]

考虑使用以下排除项
[org.clojure/clojurescript "1.10.439" :exclusions [com.google.errorprone/error_prone_annotations]]

[org.clojure/clojurescript "1.10.439"] -> [com.google.javascript/closure-compiler-unshaded "v20180805"] -> [com.google.code.findbugs/jsr305 "3.0.1"]
覆盖
[org.clojure/clojurescript "1.10.439"] -> [com.google.javascript/closure-compiler-unshaded "v20180805"] -> [com.google.guava/guava "25.1-jre"] -> [com.google.code.findbugs/jsr305 "3.0.2"]

考虑使用以下排除项
[org.clojure/clojurescript "1.10.439" :exclusions [com.google.code.findbugs/jsr305]]

由于 :pedantic? :abort 而中止
`

预期结果:成功。

我们常规使用 {{:pendatic? abort}} 设置,现在在提升 CLJS 版本后,必须将冲突修复添加到所有 {{project.clj}} 文件中。

根本问题在于 {{com.google.javascript/closure-compiler-unshaded}} 运行时工件,所以我在 https://github.com/google/closure-compiler/issues/2805 中留下了注释。但在修复之前,将其添加到未来 ClojureScript 运行时工件中的某个规避方法是很好的。例如,在 CLJS 的依赖中显式要求
`} 和 {{[com.google.errorprone/error_prone_annotations "2.3.2"]}}。

1 个答案

0投票
参考:https://clojure.atlassian.net/browse/CLJS-3047(由 alex+import 报告)
...