Thanks for working on this. Working in IO, I see us having to continually catch and fix missing guava shading, so it seems deserved.
S On Tue, Mar 14, 2017 at 2:13 PM Aviem Zur <[email protected]> wrote: > 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 >
