Ah of course. That did the trick, thank you.

Stephan Ewen <se...@apache.org> schrieb am Fri Nov 14 2014 at 14:46:51:

> I think that basically destroys the guava shading, because the guava
> classes are not in "com.google.guava", rather than in "com.google.common"
> and "com.google.thirdparty"...
>
> The excludes you defined refer to what code goes into the shaded jar, not
> what is relocated. If you define the excludes in the relocation, it should
> work.
>
> Stephan
>
>
> On Fri, Nov 14, 2014 at 1:36 PM, Sebastian Kunert <skuner...@gmail.com>
> wrote:
>
> > Thanks for your answer.
> >
> > I did already take a look at the documentation. We have the following
> code
> > snippet in our pom in flink-shade.
> >
> > <artifactSet>
> > <includes>
> > <include>com.google.guava:guava</include>
> > </includes>
> > </artifactSet>
> > <relocations>
> > <relocation>
> > <pattern>com.google</pattern>
> > <shadedPattern>org.apache.flink.shaded.com.google</shadedPattern>
> > </relocation>
> > </relocations>
> >
> > I first thought that the includes specify a whitelist of the packages to
> be
> > relocated, so from my understanding it would not be necessary to exclude
> > protobuf explicitly. Nevertheless, even the following change doesn't
> work.
> >
> > <artifactSet>
> > <includes>
> > <include>com.google.guava:guava</include>
> > </includes>
> > <excludes>
> > <exclude>com.google.protobuf:*</exclude>
> > </excludes>
> > </artifactSet>
> > <relocations>
> > <relocation>
> > <pattern>com.google</pattern>
> > <shadedPattern>org.apache.flink.shaded.com.google</shadedPattern>
> > </relocation>
> > </relocations>
> >
> >  Making the relocation part more specific solves the problem.
> >
> > <relocation>
> > <pattern>com.google.guava</pattern>
> > <shadedPattern>org.apache.flink.shaded.com.google.guava</shadedPattern>
> > </relocation>
> >
> >
> > 2014-11-14 10:22 GMT+01:00 Stephan Ewen <se...@apache.org>:
> >
> > > Hey Sebastian!
> > >
> > > I think there are two approaches:
> > >
> > >   - You can either shade the protobuf Classes as well
> > >
> > >   - or you can exclude the ptotobuf namespace from shading. Have a look
> > at
> > > the shade plugin docs.
> > >
> > > Stephan
> > >  Am 14.11.2014 09:49 schrieb "Sebastian Kunert" <skuner...@gmail.com>:
> > >
> > > > Hi Guys,
> > > >
> > > > I am currently working on integrating Flink with Mesos. Therefore I
> > > > currently reuse the flink-yarn uberjar assembly to build a jar that
> > > > contains all the classes I need. Now I have a dependency on a Google
> > > > Protobuf class. I added protobuf as a dependency to my module and it
> is
> > > > also contained in the uberjar under /com/google/protobuf.
> > > >
> > > > Nevertheless, on execution I get the following error:
> > > > java.lang.ClassNotFoundException:
> > > > org.apache.flink.shaded.com.google.protobuf.ByteString
> > > >
> > > > The location org.apache.flink.shaded... is wrong. I understand this
> is
> > > > related to the maven shading plugin but after some looking into it I
> am
> > > not
> > > > sure how to fix this.
> > > >
> > > > Greetings,
> > > >
> > > > Sebastian
> > > >
> > >
> >
>

Reply via email to