Convert coursier bootstrap into a flat classpath + filter #984
We now construct a normal fat jar, but also have Mill build an
We perform the classpath filtering at runtime, in the Ammonite code, which lets us fall back to the original simple fat-jar-style launcher. This also gives us the flexibility for embedded versions of Ammonite to inject a different
Only static classpath entries are filtered; you can still
Having the possibility of external (application) classes overriding ammonite dependencies is not yet supported. The easiest thing to do might be to simply take the ammonite fat-jar and shading everything except the classes listed in
This should avoid the performance problems we were seeing where coursier's nested-jar arrangement was slowing things down due to repeated unzipping.
We also should no longer need the custom
I also took the liberty to make use of the new