Grpc helloworld demo的经验

GreeterGrpc.java这个文件是插件protoc-gen-grpc-java生成的

刚开始直接用类似如下的指令无法生成GreeterGrpc.java文件

 protoc --java_out=. helloworld.proto    另外生成的GreeterGrpc.java文件中的@java.lang.Override标签会报错,删除即可     os.detected.classifier变量的值可以参考https://github.com/trustin/os-maven-plugin   示例pom文件  

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

  <modelVersion>4.0.0</modelVersion>

  <groupId>com.kiwi</groupId>

  <artifactId>GrpcDemo</artifactId>

  <version>0.0.1-SNAPSHOT</version>

   <properties>

    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

    <grpc.version>1.18.0</grpc.version><!-- CURRENT_GRPC_VERSION -->

    <protobuf.version>3.5.1</protobuf.version>

    <protoc.version>3.5.1-1</protoc.version>

    <os.detected.classifier>osx-x86_64</os.detected.classifier>

    </properties>

  <dependencies>

    <dependency>

      <groupId>io.grpc</groupId>

      <artifactId>grpc-netty-shaded</artifactId>

      <version>${grpc.version}</version>

      <scope>runtime</scope>

    </dependency>

    <dependency>

      <groupId>io.grpc</groupId>

      <artifactId>grpc-protobuf</artifactId>

      <version>${grpc.version}</version>

    </dependency>

    <dependency>

      <groupId>io.grpc</groupId>

      <artifactId>grpc-stub</artifactId>

      <version>${grpc.version}</version>

    </dependency>

  </dependencies>

  <build>

    <extensions>

      <extension>

        <groupId>kr.motd.maven</groupId>

        <artifactId>os-maven-plugin</artifactId>

        <version>1.5.0.Final</version>

      </extension>

    </extensions>

    <plugins>

      <plugin>

        <groupId>org.xolstice.maven.plugins</groupId>

        <artifactId>protobuf-maven-plugin</artifactId>

        <version>0.5.1</version>

        <configuration>

          <protocArtifact>com.google.protobuf:protoc:${protoc.version}:exe:${os.detected.classifier}</protocArtifact>

          <pluginId>grpc-java</pluginId>

          <pluginArtifact>io.grpc: a:${grpc.version}:exe:${os.detected.classifier}</pluginArtifact>

        </configuration>

        <executions>

          <execution>

            <goals>

              <goal>compile</goal>

              <goal>compile-custom</goal>

            </goals>

          </execution>

        </executions>

      </plugin>

      <plugin>

        <groupId>org.apache.maven.plugins</groupId>

        <artifactId>maven-enforcer-plugin</artifactId>

        <version>1.4.1</version>

        <executions>

          <execution>

            <id>enforce</id>

            <goals>

              <goal>enforce</goal>

            </goals>

            <configuration>

              <rules>

                <requireUpperBoundDeps/>

              </rules>

            </configuration>

          </execution>

        </executions>

      </plugin>

    </plugins>

  </build>

</project>

 
上一篇:nanopb-protoc 安装指导说明


下一篇:一对一视频聊天app源码,Android手机端创建文件并输入内容