My opinion, YMMV... The service abstraction is already captured by the proto3 file A.proto, so I would either:
1. distribute no implementation (just the A.proto) 2. everything (A.jar with transitive deps). If you just distribute the proto file (my preferred choice), your client B can generate the stub implementation for it's environment. You may be able to get away with your current setup, but it sounds brittle. On Friday, August 26, 2016 at 8:51:47 AM UTC-6, Mario Steinhoff wrote: > > Hey everyone, > > I have two Java services A and B. A provides RPC services via gRPC and > contains a proto file with service and message definitions. Now in B, > I want to call services from A. > > Currently, I am not distributing the proto file but compile the proto > file into Java classes and create a JAR file in the service A build. > The JAR file gets publishes to my internal artifact repository but > without grpc-stub and grpc-protobuf transitive dependencies > (compileOnly). The calling service includes gRPC and the jar file with > the compile classes and then creates a ManagedChannel and a stub for > the xxxGrpc service. > > It works for now, but is this a good idea? Would it be possible to > update gRPC in the calling service or might this break APIs and I have > to recompile the JAR file in the providing service? > > Another way I could think of is to put the proto file into a JAR file > and add the JAR file to dependencies in all calling services. Then I'd > have to compile protobuf classes in each calling service but the gRPC > versions in both services are fully independent. > > Whats the recommended way of doing this? > > Mario > -- You received this message because you are subscribed to the Google Groups "grpc.io" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/grpc-io/f109acf1-3e34-45c5-a2a5-e65c9979e346%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
