zoukankan      html  css  js  c++  java
  • 十六.maven自动化构建protobuf代码依赖

    protobuf在序列化和反序列化中的优势:

    1):序列化后体积相比Json和XML很小,适合网络传输
    2):支持跨平台多语言
    3):消息格式升级和兼容性还不错
    4):序列化反序列化速度很快,快于Json的处理速速

    前面提到的根据定义的.proto文件生成java类的方式, 需要安装protobuf,并且手动去生成java类, 好处是可以在生成的java类中进行修改,或者自定义相关方法(官方不建议这种操作);缺点显而易见.

    下面介绍使用maven插件,在编译的时候自动生成java类

    1).首先需要添加protobuf依赖

    <dependencies>
        <dependency>
            <groupId>com.google.protobuf</groupId>
            <artifactId>protobuf-java</artifactId>
            <version>${protobuf.version}</version>
        </dependency>
    </dependencies>

    2).添加maven-protobuf插件,关于插件中的相关配置详见:https://www.xolstice.org/protobuf-maven-plugin/compile-mojo.html

    <build>
    <extensions>
    <extension>
    <groupId>kr.motd.maven</groupId>
    <artifactId>os-maven-plugin</artifactId>
    <version>1.6.2</version>
    </extension>
    </extensions>
    <plugins>
    <plugin>
    <groupId>org.xolstice.maven.plugins</groupId>
    <artifactId>protobuf-maven-plugin</artifactId>
    <version>0.6.1</version>
    <configuration>
    <protocArtifact>com.google.protobuf:protoc:3.9.1:exe:${os.detected.classifier}</protocArtifact>
    </configuration>
    <executions>
    <execution>
    <goals>
    <goal>compile</goal>
    </goals>
    </execution>
    </executions>
    </plugin>
    </plugins>
    </build>

    3).若需要再编码是不显示错误提示, 需要编译后方可使用,proto目录位于src/main/目录下, 与java同级, 生成的java类通过protobuf文件中的name, java_package进行配置;

    默认在生成的类后加OuterClass



  • 相关阅读:
    JS-Array数组对象
    JS-Math对象
    JS-Date对象
    JS-流程控制汇集
    css笔记
    CSS3-box盒布局
    css笔记
    CSS3中的animation动画
    JS-百钱买百鸡案例-for循环制作
    JS-用js的for循环实现九九乘法表以及其他算数题等
  • 原文地址:https://www.cnblogs.com/kexianting/p/11607098.html
Copyright © 2011-2022 走看看