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 报告)
...