zoukankan      html  css  js  c++  java
  • protobuf 在win10系统如何编译jar包

    最近在搞java服务器项目,前段要求用protobuf进行数据传输,以前没搞过,查了很多资料,走了一些弯路!

    先把一些需要下载的链接放上来:

    protobuf下载地址:https://github.com/protocolbuffers/protobuf/releases?after=v3.5.2

    maven下载地址:http://maven.apache.org/download.cgi

    关于protobuf下载那些内容,看图:

    使用protobuf的流程无非就是三部分。数据定义、数据生成、数据解析

    数据定义其实就是自己编写一个.proto文件 例如这个 protoDemo.proto文件:

    这只是一个简单的结构,里面定义了 id、name等的一些属性,required 、optional这一部分是关键字部分,结构并不复杂,大家自行百度自学!这个地址不错 https://blog.csdn.net/skh2015java/article/details/78404235

    这个文件通过我们下载的proto.exe这个工具生成我们对应的java文件,供项目使用!直接打开cmd窗口,怎么使用从网上查查,有很多

    最终我是将protoDemo.proto  通过protoc.exe 生成了想要的 ProtoDemo.java文件

    到这里是比较容易的,那么怎么在项目里使用protobuf解析这个文件呢!其实是有两种方式

    1.编译jar包,在项目里导入jar包  

    其实人家有提供说明就在README.md里,只是我们不知道看罢了,结果浪费了很多时间查资料看文档的!

    README.md就在protobuf-3.4.0java文件夹下里面试这样描述的

    这里主要说几点遇到的问题:

    1. maven下载解压后,需要在环境变量进行配置

    配置成功在cmd里测试一下: 执行命令:mvn -v

    配置成功会打印一些maven的信息出来

    然后直接cd到protobuf-3.4.0java文件夹下,按照图里的步骤,进行编译就行!

    maven默认的情况下是从Google的官网下载那些所需的文件,所以我们在国内如果网不行的还是,还是应该走一些国内的镜像,这里就需要对maven进行一下配置

    xxxapache-maven-3.6.0-binconf路径下找到settings.xml 打开,在 <mirrors>标签下添加

        <mirror>
          <id>aliyun</id>
            <name>aliyun Maven</name>
            <mirrorOf>*</mirrorOf>
            <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
        </mirror>

    如图

    这个就是用的阿里云的镜像下载的,当然还有其他的镜像,大家自行百度吧!

    开始编译其实就是下载资源的过程,从镜像网站会下载资源到你的本地,你本地路径怎么设置呢!参考链接:http://www.cnblogs.com/duanxz/p/5210189.html

    因为有些文件下载到本地仓库后,会优先从本地仓库查找并使用,这时候你编译出问题了,很可能是你本地残酷的文件下载下来的就有问题,所以,根据提示,在本地仓库找到对应的文件,删除,再重新编译!

    还有就是有些版本的test代码有问题,编译报错,果断删除相应的test里的java代码,再编译,因为那些只是例子,编译jar包根本不需要!

    就这两句红字我就搞了一天,因为我从没用过maven,我是菜鸡!你们不要走我的弯路

    2.使用protobuf源码

    行对与第一种方式,第二种方式就简单多了,直接引入 xxxprotobuf-3.4.0javacoresrcmainjava下的源码!其实也不能完全copy过去,在这之前还需要编译一个文件,不然copy过去会报错

    如图:

    他这个2)里的命令是不是多了呀,我上传我的大家借鉴下吧

    生成DescriptorProtos.java后,就可以直接将源码直接拷贝到工程里直接用了!

    但是工程里还会报错,妈了个鸡,一个unsafe什么玩意的错误,好吧,鼓捣半天,这是个eclipse设置问题,如图修改一下

    这个默认情况下是error,改成warning,就不提示unsafe相关的错误了!

    至此,天下太平!

    趁着热乎,赶紧整理出来,如果有不周到的地方,烦请留言!还有,csdn上的资源太贵了!你想不折腾下载个现成的,不如好好想想自己搞!

    maven还有很多东西要学习,不懂得看看这个文章 https://blog.csdn.net/java_2017_csdn/article/details/77450598 

    我就是看了这篇文章,才知道maven是个什么东西!大家共勉吧!

    图片里写的proto.exe就是protoc.exe,笔误,不要误导大家哈!

  • 相关阅读:
    Hadoop面试题总结(三)——MapReduce
    Hadoop面试题总结(二)——HDFS
    Hadoop面试题(一)
    html table有跨行跨列时,设置td宽度失效
    ubuntu14.04 安装五笔输入法(fcitx)
    NetCore生产环境禁用Swagger教程
    使用Jenkins与Docker持续集成与发布NetCore项目(实操篇)
    解决 Docker Unable to load the service index for source https://api.nuget.org/v3/index.json 问题
    .net webapi 接收图片保存到服务器,并居中剪裁压缩图片
    .net webapi 接收 xml 格式数据的三种情况
  • 原文地址:https://www.cnblogs.com/ruber/p/10178925.html
Copyright © 2011-2022 走看看