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

  • 相关阅读:
    【POJ3358】Period of an Infinite Binary Expansion-欧拉定理+数论好题
    【POJ3696】The Luckiest Number-欧拉定理+快速幂
    【POJ3090】Visible Lattice Points-欧拉函数应用
    【POJ3090】Visible Lattice Points-欧拉函数应用
    【POJ2891】Strange Way to Express Integers-解一元线性同余方程组
    【POJ2891】Strange Way to Express Integers-解一元线性同余方程组
    【POJ2429】GCD & LCM Inverse-Pollard-rho分解+枚举
    【POJ2429】GCD & LCM Inverse-Pollard-rho分解+枚举
    【POJ1811】Prime Test-Miller-Rabin素数测试+Pollard-rho大数分解
    deleted
  • 原文地址:https://www.cnblogs.com/ghj1976/p/5391205.html
Copyright © 2011-2022 走看看