zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    RESTFUL 设计风格
    GET与POST的区别
    pycharm 对数据库进行可视化操作
    ORM 的基本操作
    pycharm 直接删掉数据表之后,makemigration和migrate 之后,数据库中依然没有生成数据表的问题
    DOM
    BOM对象
    JavaScript
    traversal child window of parent window
    tkinter threading unblock GUI ( check if the thread exists)
  • 原文地址:https://www.cnblogs.com/ghj1976/p/5391205.html
Copyright © 2011-2022 走看看