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
>

Reply via email to