depstar

Discussion around https://github.com/seancorfield/depstar
pinealan 2021-03-17T02:24:06.003400Z

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?

seancorfield 2021-03-17T02:31:33.004100Z

No idea. Iโ€™ve never looked at uberdeps. I just steer people to depstar, esp. when they canโ€™t get uberdeps to work ๐Ÿ™‚

๐Ÿ˜‚ 1
seancorfield 2021-03-17T02:53:25.006900Z

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

seancorfield 2021-03-17T02:58:47.009100Z

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.

seancorfield 2021-03-17T03:00:44.009900Z

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

seancorfield 2021-03-17T03:02:46.012Z

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 ๐Ÿ™‚

pinealan 2021-03-17T03:36:05.012600Z

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