grpc-java/compiler
Eric Anderson 7c6c045d92 Remove support for Nano's deprecated package names
This requires that all nano protos have .nano in their package name. The
support is expected to be removed from protobuf soon, since using the
deprecated package name causes problems.
2016-03-10 11:00:32 -08:00
..
src Remove support for Nano's deprecated package names 2016-03-10 11:00:32 -08:00
Dockerfile Pass -j to correct command 2016-02-17 11:44:28 -08:00
README.md Upgrade to protobuf-3.0.0-beta-2 and protobuf-nano-3.0.0-alpha-5 2016-01-27 23:32:01 -08:00
build.gradle Fix artifact upload for compiler 2016-01-29 17:16:58 -08:00
check-artifact.sh Fix artifact upload for compiler 2016-01-29 17:16:58 -08:00

README.md

gRPC Java Codegen Plugin for Protobuf Compiler

This generates the Java interfaces out of the service definition from a .proto file. It works with the Protobuf Compiler (protoc).

Normally you don't need to compile the codegen by yourself, since pre-compiled binaries for common platforms are available on Maven Central. However, if the pre-compiled binaries are not compatible with your system, you may want to build your own codegen.

System requirement

  • Linux, Mac OS X with Clang, or Windows with MSYS2
  • Java 7 or up
  • Protobuf 3.0.0-beta-2 or up

Compiling and testing the codegen

Change to the compiler directory:

$ cd $GRPC_JAVA_ROOT/compiler

To compile the plugin:

$ ../gradlew java_pluginExecutable

To test the plugin with the compiler:

$ ../gradlew test

You will see a PASS if the test succeeds.

To compile a proto file and generate Java interfaces out of the service definitions:

$ protoc --plugin=protoc-gen-grpc-java=build/binaries/java_pluginExecutable/protoc-gen-grpc-java \
  --grpc-java_out="$OUTPUT_FILE" --proto_path="$DIR_OF_PROTO_FILE" "$PROTO_FILE"

To generate Java interfaces with protobuf nano:

$ protoc --plugin=protoc-gen-grpc-java=build/binaries/java_pluginExecutable/protoc-gen-grpc-java \
  --grpc-java_out=nano=true:"$OUTPUT_FILE" --proto_path="$DIR_OF_PROTO_FILE" "$PROTO_FILE"

Installing the codegen to Maven local repository

This will compile a codegen and put it under your ~/.m2/repository. This will make it available to any build tool that pulls codegens from Maven repostiories.

$ ../gradlew install

Creating a release of GRPC Java

Please follow the instructions in RELEASING.md under the root directory for details on how to create a new release.