Hi all, https://github.com/apache/beam/pull/2096 introduced a common shading configuration for all of the modules in the project.
The reason for this is that modules which are dependent on Guava may leak this dependency to the user and this could conflict with the version of Guava they require. A common, default shading configuration ensures that if a module adds a dependency on Guava it will be shaded and relocated to avoid these conflicts. This change does make the file sizes of the modules' jars go up. If there are modules which are dependent on Guava but do not require shading and relocating of it (i.e. the module does not pose a risk of leaking Guava to the user) we can "opt-out" that module from default shading configuration. To do this add the following to the module's build plugins: https://github.com/apache/beam/pull/2096#issuecomment-286393622 P.S. Our shading of Guava currently only saves us from non-transitive dependencies of Guava. If a module has a transitive dependency on Guava (And does not have an explicit non-transitive dependency on it) it will not be shaded (Maven dependencies plugin protects us from this, but not in all cases). We plan to fix this in https://issues.apache.org/jira/browse/BEAM-1706 We can consider configuring minimization for our maven shade plugin to reduce the jar sizes, but there are some issues with this. See: https://issues.apache.org/jira/browse/BEAM-1720
