Forge's JarJar supports recursion, meaning an embedded dep may itself embed additional deps, and therefore requires checking all embedded jars just in case they might also embed more jars.
In new loader, recursion is not supported as it's relatively slow and adds unwanted complexity. Instead, we need to flatten embedded jars at build time. For example...
Before:
- foo.jar
- bar.jar
- bar-core.jar
- bar-extra.jar
- baz.jar
After:
- foo.jar
- bar.jar
- bar-core.jar
- bar-extra.jar
- baz.jar
Forge's JarJar supports recursion, meaning an embedded dep may itself embed additional deps, and therefore requires checking all embedded jars just in case they might also embed more jars.
In new loader, recursion is not supported as it's relatively slow and adds unwanted complexity. Instead, we need to flatten embedded jars at build time. For example...
Before:
After: