Fork me on GitHub
#juxt
<
2018-10-23
>
dpsutton19:10:27

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

dominicm19:10:07

Why on earth do I have a gen-class in there!

dominicm19:10:18

(I suspect I compiled this namespace to test an unrelated feature). Weird that it didn't NPE for me.

dpsutton19:10:41

so you can create a thin jar?

dominicm19:10:53

Yep! I did it this evening in fact.

dpsutton19:10:04

we also were hoping that it would do the manifest stuff for us. but that doesn't seem to be part of its mission

dpsutton19:10:29

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

dominicm19:10:46

@dpsutton which manifest stuff, out of curiosity? pom.xml?

dpsutton19:10:39

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

dpsutton19:10:04

then there's private s3 stuff. lein is already configured for that so it was quite simple

dominicm19:10:03

@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.

dominicm20:10:47

@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

dpsutton20:10:35

ok. we might revisit it soon then

dpsutton20:10:42

need to then solve the private repo problem

dpsutton20:10:49

but happy to try this out again in the future

dpsutton20:10:53

but happy to try this out again in the future

dominicm20:10:18

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.