Hi!

I have looked into Robert's pull request about the Guava shading.

The problem is that shading builds uberjars and adds all guava files to all
the jars created by the projects. That blows up the code base by a lot and
seems dirty:

We have the guava classes more than 10 times in the classpath in the end
and blow the lib flolder up by 50 MB.

I modified it a bit and now have the following:

1) There is a project "flink-shaded", which builds the jars with the
relocated guava dependency (now in "org.apache.flink.shaded.com.google").
We can later relocate also other libraries to that project.

2) The core and other projects depend in "flink-shaded" for their guava

3) All projects are processed by the shade plugin, which only re-writes the
guava namespace, but does not add any classes to the jars.

4) All projects that depend on guava need to be shaded as well, such that
we can exclude the guava dependency there...


What do you think?


Stephan

Reply via email to