@seancorfield Thanks for the detailed help! After clearing up my misunderstanding about the difference between :extra-deps
and :replace-deps
things started to make a lot more sense.
In hindsight, the README is pretty clear. The “:webassets” example is about adding paths rather than deps, but I probably should have made the connection there. If you think that it is common use case to add deps to the classpath, then perhaps the example could also include :extra-deps
but overall I think it is clear as is.
@erp12 That's good feedback. I can't think of a good example where you'd specify an alias with an :extra-deps
but if I think of one or someone suggests something, I can put it in 🙂
In my case, the reason for the :extra-deps
is because of a dependency that is “provided” in production but missing during local builds. In specific, it is due to the common deployment process of a https://spark.apache.org/ job/application.
When deploying a Spark job to a Spark cluster (via a jar) Spark itself should not be in the jar because it is provided by the cluster, thus we don’t include it in our project’s :deps
. However, if we want to build an uberjar that runs spark in “local” mode (essentially multithreaded instead of across a cluster) we have to add the Spark dependency in to the build process.
I think I have come across a few other frameworks that that have similar deployment patterns, but I can’t think of them off the top of my head.
Ah, right, that rings a bell. Do you think you could write that up as a PR against the README in the webassets section @erp12?