uberjar fails when using git libs
xfthhxk opened this issue · comments
If deps.edn
has a :git/url
or :local/root
such as the following then there is an exception thrown by ZipFile.open
while generating the uberjar.
{:paths ["src" "resources"]
:deps
{commons {:git/url "https://github.com/user/commons"
:sha "caffa137fa1c865ee12f02ed100f11917e839c11"}}
:aliases
{:uberjar {:extra-deps
{luchiniatwork/cambada {:mvn/version "1.0.0"}}
:main-opts ["-m" "cambada.uberjar" "--main" "program.main"]}}
...
Including httpcore-nio-4.4.6.jar
Including component-0.3.2.jar
Including clj
Exception in thread "main" java.io.FileNotFoundException: /home/user/.gitlibs/libs/commons/caffa137fa1c865ee12f02ed100f11917e839c11/src/clj (Is a directory)
at java.util.zip.ZipFile.open(Native Method)
at java.util.zip.ZipFile.<init>(ZipFile.java:225)
at java.util.zip.ZipFile.<init>(ZipFile.java:155)
at java.util.zip.ZipFile.<init>(ZipFile.java:169)
at sun.reflect.GeneratedConstructorAccessor15.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at clojure.lang.Reflector.invokeConstructor(Reflector.java:180)
at cambada.uberjar$include_dep.invokeStatic(uberjar.clj:103)
at cambada.uberjar$include_dep.invoke(uberjar.clj:102)
at clojure.core$partial$fn__5563.invoke(core.clj:2624)
at clojure.core.protocols$naive_seq_reduce.invokeStatic(protocols.clj:62)
at clojure.core.protocols$interface_or_naive_reduce.invokeStatic(protocols.clj:72)
at clojure.core.protocols$fn__7852.invokeStatic(protocols.clj:169)
at clojure.core.protocols$fn__7852.invoke(protocols.clj:124)
at clojure.core.protocols$fn__7807$G__7802__7816.invoke(protocols.clj:19)
at clojure.core.protocols$seq_reduce.invokeStatic(protocols.clj:31)
at clojure.core.protocols$fn__7835.invokeStatic(protocols.clj:75)
at clojure.core.protocols$fn__7835.invoke(protocols.clj:75)
at clojure.core.protocols$fn__7781$G__7776__7794.invoke(protocols.clj:13)
at clojure.core$reduce.invokeStatic(core.clj:6748)
at clojure.core$reduce.invoke(core.clj:6730)
at cambada.uberjar$write_components.invokeStatic(uberjar.clj:118)
at cambada.uberjar$write_components.invoke(uberjar.clj:113)
at cambada.uberjar$apply_BANG_.invokeStatic(uberjar.clj:138)
at cambada.uberjar$apply_BANG_.invoke(uberjar.clj:129)
at cambada.cli$runner.invokeStatic(cli.clj:120)
at cambada.cli$runner.invoke(cli.clj:115)
at cambada.uberjar$_main.invokeStatic(uberjar.clj:142)
at cambada.uberjar$_main.doInvoke(uberjar.clj:140)
at clojure.lang.RestFn.applyTo(RestFn.java:137)
at clojure.lang.Var.applyTo(Var.java:702)
at clojure.core$apply.invokeStatic(core.clj:657)
at clojure.main$main_opt.invokeStatic(main.clj:317)
at clojure.main$main_opt.invoke(main.clj:313)
at clojure.main$main.invokeStatic(main.clj:424)
at clojure.main$main.doInvoke(main.clj:387)
at clojure.lang.RestFn.applyTo(RestFn.java:137)
at clojure.lang.Var.applyTo(Var.java:702)
at clojure.main.main(main.java:37)
I bumped into this recently and asked about it in Clojurians. Someone recommended I try this fork of Cambada and it did indeed resolve the problem for me.