MovingBlocks / Terasology

Terasology - open source voxel world
http://terasology.org
Apache License 2.0
3.67k stars 1.33k forks source link

Duplicate / confusing jars in shipped game zip #4671

Open Cervator opened 3 years ago

Cervator commented 3 years ago

On semi-randomly poking around I noticed by change that our game zip ships with a few dependencies that look to be duplicated with different versions. This could have snuck in and not matter, could be transitive dependencies etc, but it seemed worth mentioning since it includes big scary ole Reflections.

Suspicious sets:

Can probably be investigated pretty quick with some Gradle dependency graph trawling but I've got enough tangents open right now as-is :-)

keturn commented 3 years ago

reflections-0.9.10.jar + reflections-0.9.12-MB.jar - I think the second one might be built via our fork?

Correct. And this is the one that worries me. On the one hand, if by some chance we have some dependency with a transitive dependency on the upstream reflections-0.9.10, it might be a little bloat but I don't know if it's risky beyond that.

But the Reflections class is a part of the public interface of gestalt-module. So if we somehow end up with multiple different implementations of Reflections that we're trying to pass around among engine, gestalt-module, and nui.reflect or whatever else, that sounds like it might make for some very hard-to-debug situations.

I guess the thing to do is look at the dependency graph in a build scan and see what is depending on each of them.