hi @dominicm. we were trying to use pack earlier making a thin jar but were getting a null pointer exception when using the thin jar ns. we cloned it, added it as a local repo, removed the gen-class and it worked
Why on earth do I have a gen-class in there!
Gone!
haha nice
(I suspect I compiled this namespace to test an unrelated feature). Weird that it didn't NPE for me.
so you can create a thin jar?
Yep! I did it this evening in fact.
we also were hoping that it would do the manifest stuff for us. but that doesn't seem to be part of its mission
we went the lein route with the plugin that can understand deps edn. so now its deps edn for running and lein deploy
to make our artifacts
@dpsutton which manifest stuff, out of curiosity? pom.xml?
we need it to be an addressable artifact from lein. which i thought required all of the manifest junk in adittion to poms. I'm not familiar with jvm ecosystem stuff like that though
then there's private s3 stuff. lein is already configured for that so it was quite simple
@dpsutton Nope. MANIFEST.MF not required for this sort of thing. I only tested my toy via clj -Sdeps
, but that uses maven as a library to download it, so I would expect it to work. Easy to test though.
@dpsutton fwiw,
(defproject octo "0.1.0"
:dependencies [[io.dominic/super-duper-octo-barnacle "0.1.1"]]
:main io.dominic.super-duper-octo-barnacle.core)
Runs with:
/tmp/octo
❯ lein run SevereOverfl0w
WARNING: update already refers to: #'clojure.core/update in namespace: clj-http.client, being replaced by: #'clj-http.client/update
90
ok. we might revisit it soon then
need to then solve the private repo problem
but happy to try this out again in the future
Yeah. Lein has a definite win with s3-wagon uploading. Hopefully someone will write a generic uploader that works given any jar. Then we can compose tools together without having to jump around select combinations of build tools, and we can load what we want into build tools we select.