Fork me on GitHub
#depstar
<
2021-03-17
>
pinealan02:03:06

anyone familiar with uberdeps? I’m trying out different lightweight solutions for building jars from deps.edn and found it very similar to depstar, only except that it still uses the main-opts interface. Are there other notable differences between uberdeps and depstar?

seancorfield02:03:33

No idea. I’ve never looked at uberdeps. I just steer people to depstar, esp. when they can’t get uberdeps to work 🙂

😂 3
seancorfield02:03:25

OK, so I've been and taken a look at it @achan961117: uberdeps doesn't do AOT compilation (`depstar` does), it requires you to decide whether your JAR is Multi-Release or not (`depstar` does that automatically), it only produces uberjars, not library JARs (`depstar` does both), it doesn't do anything with pom.xml (`depstar` can generate it and can keep it updated for you). It doesn't look like uberdeps can exclude any files (`depstar` can).

seancorfield02:03:47

So if you want to package and deploy libraries, you'll want depstar. If you want to build an uberjar (for an application) and want AOT compilation taken care of automatically, use depstar. I can't tell whether uberdeps deals with the Log4J2Plugins.dat file properly.

seancorfield03:03:44

Oh, another thing uberdeps can't do: add additional entries to the MANIFEST.MF file (`depstar` provides an option to do this -- because folks asked for it).

seancorfield03:03:46

I use depstar for building all my open source projects (and deps-deploy to deploy them to Clojars) and I rely on depstar to update group/artifact/version in pom.xml as part of my workflow there. At work we use depstar to build all our production artifacts (over a dozen apps, built from over three dozen subprojects, in a monorepo with 110K lines of Clojure). So depstar is very much battle-tested 🙂

pinealan03:03:05

thanks for the deep dive! looks like depstar is the way to go then