Welcome! Please see the About page for a little more info on how this works.

0 votes
in ClojureScript by


1) Create {{project.clj}} file:

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

2) Run {{lein deps}}.

Actual: fails because of dependency conflicts:

Possibly confusing dependencies found:
[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"]

Consider using these exclusions:
[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"]

Consider using these exclusions:
[org.clojure/clojurescript "1.10.439" :exclusions [com.google.code.findbugs/jsr305]]

Aborting due to :pedantic? :abort

Expected: success.

We rutinely use {{:pendatic? abort}} setting and now have to add conflict fixes into all {{project.clj}} files after bumping CLJS version.

The root problem is in {{com.google.javascript/closure-compiler-unshaded}} artifact, so I've commented about it in https://github.com/google/closure-compiler/issues/2805. But until it's fixed it would be great to include some workaround into future ClojureScript artifacts. E.g. requiring
`} and {{[com.google.errorprone/error_prone_annotations "2.3.2"]}} explicitly in CLJS's dependencies.

1 Answer

0 votes
Reference: https://clojure.atlassian.net/browse/CLJS-3047 (reported by alex+import)