FabricMC / fabric-loom

Gradle build system plugin used to automate the setup of a minecraft mod development environment.
MIT License
221 stars 193 forks source link

`included` jars not loaded during `runClient` etc. leading to crashes. #1128

Closed fzzyhmstrs closed 2 weeks ago

fzzyhmstrs commented 2 weeks ago

What is happening

In projects that depend on things from what I'll call "jar-mavens" (modrinth maven, cursemaven, flatDir, etc), that don't have the full maven loadout, runClient and similar tasks will crash when those dependencies don't have the nested jars they included at runtime.

This is not about include being non-transitive, I'm not talking about anything to do with the compile classpath, I'm specifically talking about jar-in-jars being included in dev MC instances like they were added to the mods folder in run. Much as one would expect to happen in a "production" instance.

Expected behavior

Dependencies added have all of their runtime nested mods as needed, and the test instance can launch without a ClassNotFoundException or fabric loader "mod missing!" fault.

Actual behavior

You get crashes per above.

This causes the user to have to hunt down included deps and either strip them out of the jar and add them to run manually, or add local runtime deps just to get one of their other dependencies launching in dev.

modmuss50 commented 2 weeks ago

This is working as expected. Loom removes/ingores any JIJed depdencies, they should be provided as maven depedencies. Those "jar-mavens" arent real maven servers, and do not provide the correct depedency information.