shadow-cljs

Eva O 2025-03-23T18:47:16.364969Z

I added Datomic Local to my deps and now shadow-cljs is failing with:

[:app] Build failure:
RuntimeException: java.lang.NoClassDefFoundError: com/fasterxml/jackson/core/JsonFactory
        com.cognitect.transit.impl.ReaderFactory$JsonReaderImpl.createParser (ReaderFactory.java:154)
        com.cognitect.transit.impl.ReaderFactory$ReaderImpl.initialize (ReaderFactory.java:134)
        com.cognitect.transit.impl.ReaderFactory$ReaderImpl.read (ReaderFactory.java:110)
        cognitect.transit/read (transit.clj:323)
        cognitect.transit/read (transit.clj:319)
        shadow.build.cache/read-cache (cache.clj:49)
        shadow.build.cache/read-cache (cache.clj:33)
        shadow.build.closure/convert-goog (closure.clj:2457)
        shadow.build.closure/convert-goog (closure.clj:2447)
        shadow.build.compiler/maybe-closure-convert (compiler.clj:1394)
        shadow.build.compiler/maybe-closure-convert (compiler.clj:1387)
        shadow.build.compiler/compile-all (compiler.clj:1629)
        shadow.build.compiler/compile-all (compiler.clj:1506)
        shadow.build.api/compile-sources (api.clj:261)
        shadow.build.api/compile-sources (api.clj:253)
        shadow.build/compile (build.clj:512)
        shadow.build/compile (build.clj:493)
        shadow.cljs.devtools.server.worker.impl/build-compile (impl.clj:368)
        shadow.cljs.devtools.server.worker.impl/build-compile (impl.clj:349)
        shadow.cljs.devtools.server.worker.impl/eval25662/fn--25664 (impl.clj:448)
        clojure.lang.MultiFn.invoke (MultiFn.java:234)
        shadow.cljs.devtools.server.util/server-thread/fn--25415/fn--25416/fn--25424 (util.clj:283)
        shadow.cljs.devtools.server.util/server-thread/fn--25415/fn--25416 (util.clj:282)
        shadow.cljs.devtools.server.util/server-thread/fn--25415 (util.clj:255)
        java.lang.Thread.run (Thread.java:1583)
Caused by:
NoClassDefFoundError: com/fasterxml/jackson/core/JsonFactory
        com.cognitect.transit.impl.ReaderFactory$JsonReaderImpl.createParser (ReaderFactory.java:150)
        com.cognitect.transit.impl.ReaderFactory$ReaderImpl.initialize (ReaderFactory.java:134)
        com.cognitect.transit.impl.ReaderFactory$ReaderImpl.read (ReaderFactory.java:110)
        cognitect.transit/read (transit.clj:323)
        cognitect.transit/read (transit.clj:319)
        shadow.build.cache/read-cache (cache.clj:49)
        shadow.build.cache/read-cache (cache.clj:33)
        shadow.build.closure/convert-goog (closure.clj:2457)
        shadow.build.closure/convert-goog (closure.clj:2447)
        shadow.build.compiler/maybe-closure-convert (compiler.clj:1394)
        shadow.build.compiler/maybe-closure-convert (compiler.clj:1387)
        shadow.build.compiler/compile-all (compiler.clj:1629)
        shadow.build.compiler/compile-all (compiler.clj:1506)
        shadow.build.api/compile-sources (api.clj:261)
        shadow.build.api/compile-sources (api.clj:253)
        shadow.build/compile (build.clj:512)
        shadow.build/compile (build.clj:493)
        shadow.cljs.devtools.server.worker.impl/build-compile (impl.clj:368)
        shadow.cljs.devtools.server.worker.impl/build-compile (impl.clj:349)
        shadow.cljs.devtools.server.worker.impl/eval25662/fn--25664 (impl.clj:448)
        clojure.lang.MultiFn.invoke (MultiFn.java:234)
        shadow.cljs.devtools.server.util/server-thread/fn--25415/fn--25416/fn--25424 (util.clj:283)
        shadow.cljs.devtools.server.util/server-thread/fn--25415/fn--25416 (util.clj:282)
        shadow.cljs.devtools.server.util/server-thread/fn--25415 (util.clj:255)
        java.lang.Thread.run (Thread.java:1583)
Caused by:
ClassNotFoundException: com.fasterxml.jackson.core.JsonFactory
        com.cognitect.transit.impl.ReaderFactory$JsonReaderImpl.createParser (ReaderFactory.java:150)
        com.cognitect.transit.impl.ReaderFactory$ReaderImpl.initialize (ReaderFactory.java:134)
        com.cognitect.transit.impl.ReaderFactory$ReaderImpl.read (ReaderFactory.java:110)
        cognitect.transit/read (transit.clj:323)
        cognitect.transit/read (transit.clj:319)
        shadow.build.cache/read-cache (cache.clj:49)
        shadow.build.cache/read-cache (cache.clj:33)
        shadow.build.closure/convert-goog (closure.clj:2457)
        shadow.build.closure/convert-goog (closure.clj:2447)
        shadow.build.compiler/maybe-closure-convert (compiler.clj:1394)
        shadow.build.compiler/maybe-closure-convert (compiler.clj:1387)
        shadow.build.compiler/compile-all (compiler.clj:1629)
        shadow.build.compiler/compile-all (compiler.clj:1506)
        shadow.build.api/compile-sources (api.clj:261)
        shadow.build.api/compile-sources (api.clj:253)
        shadow.build/compile (build.clj:512)
        shadow.build/compile (build.clj:493)
        shadow.cljs.devtools.server.worker.impl/build-compile (impl.clj:368)
        shadow.cljs.devtools.server.worker.impl/build-compile (impl.clj:349)
        shadow.cljs.devtools.server.worker.impl/eval25662/fn--25664 (impl.clj:448)
        clojure.lang.MultiFn.invoke (MultiFn.java:234)
        shadow.cljs.devtools.server.util/server-thread/fn--25415/fn--25416/fn--25424 (util.clj:283)
        shadow.cljs.devtools.server.util/server-thread/fn--25415/fn--25416 (util.clj:282)
        shadow.cljs.devtools.server.util/server-thread/fn--25415 (util.clj:255)
        java.lang.Thread.run (Thread.java:1583)

thheller 2025-03-23T19:52:41.506979Z

looks like a dependency conflict

Eva O 2025-03-23T20:38:24.715489Z

How do I fix it? The only dependency change I made was adding com.datomic/local {:mvn/version "1.0.291"}

thheller 2025-03-24T06:41:50.891349Z

well, you resolve that by removing the dependency conflict. can't tell you exactly since I do not know what your project dependencies are. looks like it is a conflict on jackson, likely getting a newer/older version than transit wants

thheller 2025-03-24T06:42:33.295509Z

clj -Stree shows your dependency graph and which version gets picked where

Eva O 2025-03-24T06:46:17.336479Z

Oh ok shadow-cljs depends on transit which depends on a different version of jackson than datomic

thheller 2025-03-24T06:46:47.143869Z

thats what it looks like from the trace yeah