• Maven项目中,编译proto文件成Java类


    新建Maven项目

    新建一个 Maven 项目:

    image

    • pom定义了最小的maven2元素,即:groupId,artifactId,version。
    • groupId:项目或者组织的唯一标志,并且配置时生成的路径也是由此生成,如org.codehaus.mojo生成的相对路径为:/org/codehaus/mojo
    • artifactId: 项目的通用名称
    • version:项目的版本
    • packaging: 打包的机制,如pom, jar, maven-plugin, ejb, war, ear, rar, par
    • classifier: 分类

    image

    项目名称:

    image

    我们新建的空白 Maven 项目结构如下:

    image

     

    导入 gRPC 对应包依赖

    对Maven 项目来说,在 pom.xml 文件中需要增加对应 jar

    <dependency>
      <groupId>io.grpc</groupId>
      <artifactId>grpc-all</artifactId>
      <version>0.13.2</version>
    </dependency>

    导入 proto 插件

    image

     

    导入 Maven protobuf 插件

    protobuf-maven-plugin:

    https://www.xolstice.org/protobuf-maven-plugin/

    修改 pom.xml 文件,增加下面节:

    <build>
        <extensions>
            <extension>
                <groupId>kr.motd.maven</groupId>
                <artifactId>os-maven-plugin</artifactId>
                <version>1.4.1.Final</version>
            </extension>
        </extensions>
        <plugins>
            <plugin>
                <groupId>org.xolstice.maven.plugins</groupId>
                <artifactId>protobuf-maven-plugin</artifactId>
                <version>0.5.0</version>
                <configuration>
                    <!--
                      The version of protoc must match protobuf-java. If you don't depend on
                      protobuf-java directly, you will be transitively depending on the
                      protobuf-java version that grpc depends on.
                    -->
                    <protocArtifact>com.google.protobuf:protoc:3.0.0-beta-2:exe:${os.detected.classifier}</protocArtifact>
                    <pluginId>grpc-java</pluginId>
                    <pluginArtifact>io.grpc:protoc-gen-grpc-java:0.13.2:exe:${os.detected.classifier}</pluginArtifact>
                </configuration>
                <executions>
                    <execution>
                        <goals>
                            <goal>compile</goal>
                            <goal>compile-custom</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
    执行Maven插件命令。

    在输出命令中,我们可以看到编译后的输出。

    image

    [INFO] --- protobuf-maven-plugin:0.5.0:compile (default-cli) @ myTestMaven ---
    [INFO] Compiling 2 proto file(s) to /Users/ghj1976/project/mystudy/Demo1/target/generated-sources/protobuf/java

     

     

    参考: https://github.com/grpc/grpc-java/blob/master/README.md

  • 相关阅读:
    atitit.js浏览器环境下的全局异常捕获
    atitit.事件驱动的总结attilax
    atitit.事件驱动的总结attilax
    1.1.1. Atitit Cocos2d-JS v3.x的问题
    1.1.1. Atitit Cocos2d-JS v3.x的问题
    Atitit html5 Canvas 如何自适应屏幕大小
    Atitit  如何让精灵控件运动
    Atitit html5 Canvas 如何自适应屏幕大小
    Atitit  如何让精灵控件运动
    atitit.日期,星期,时候的显示方法ISO 8601标准
  • 原文地址:https://www.cnblogs.com/ghj1976/p/5391205.html
Copyright © 2020-2023  润新知