idea 编译protobuf 文件的设置使用

protobuf 是一种数据格式,文件是.proto 格式的,有时需要编译成java 文件 ,目前流行 idea 工具开发并编译。那么应该怎么准备环境呢?我这有两种方案:下载idea插件编译和通过maven 编译:

二者相同的步骤如下:idea 下载插件
idea 编译protobuf 文件的设置使用_第1张图片

一、下载idea插件编译:

idea 编译protobuf 文件的设置使用_第2张图片

 1、安装成功后重启:出现以下按钮说明安装成功。

idea 编译protobuf 文件的设置使用_第3张图片

2、官网下载protobuf 编译工具:protoc-3.11.8-win64.rar,解压打开后显示:

例如:   D:\Program Files\protoc-3.11.4-win64\bin\proto.exe  

idea 编译protobuf 文件的设置使用_第4张图片

 

3、点开 Idea上插件  Google ProtobufTool 按钮,点击setting 设置编译相关目录
idea 编译protobuf 文件的设置使用_第5张图片

idea 编译protobuf 文件的设置使用_第6张图片

4、通过有边的Browse 按钮选择相应目录:

protoc_path :就是刚刚下载的工具的目录+命令(=后面是需要编译的.proto 文件的目录),

比如: D:\Program Files\protoc-3.11.4-win64\bin\proto.exe  -I=E:\ideaProject\nmp-sdk\nmp-sdk\proto

protofile_path:需要编译的.proto 文件的目录

out_path :编译生成的java文件输出的目录

5、点击成功后进入这个页面:

idea 编译protobuf 文件的设置使用_第7张图片

6、选择一些文件点击Gen  就会编译  如图 :

idea 编译protobuf 文件的设置使用_第8张图片

 7、编译成功图:

idea 编译protobuf 文件的设置使用_第9张图片

二、maven 编译方案 下篇详细介绍,这个方案比较简单易用

1、pom.xml 中引用相关jar:


    com.google.protobuf
     protobuf-java
    3.9.0



    io.grpc
    grpc-core
    1.6.1


    io.grpc
    grpc-protobuf-lite
    1.6.1


    io.grpc
    grpc-protobuf
    ${grpc.version}

 插件需要的信息

 
                org.springframework.boot
                spring-boot-maven-plugin
            
            
            
                org.xolstice.maven.plugins
                protobuf-maven-plugin
                0.5.1
                
                    

                    
                    ${project.basedir}/src
                  
                    
             
                    ${project.build.sourceDirectory}
             
                    false

                    
                    com.google.protobuf:protoc:${protobuf.version}:exe:${os.detected.classifier}
                    grpc-java
                    io.grpc:protoc-gen-grpc-java:${grpc.version}:exe:${os.detected.classifier}
                
                
                    
                        
                            compile
                            compile-custom
                        
                    
                
            

extensions 扩展配置: 


    
        kr.motd.maven
        os-maven-plugin
        1.5.0.Final
    

grpc 配置 


1.6.1

3.9.0

2、引入成功后打开maven插件,点击此处,生成相应的java文件:

(根据个人需求,我这里配置这个:${project.basedir}/proto

idea 编译protobuf 文件的设置使用_第10张图片

3、然后把相关java文件打成单独的jar 包:

(根据个人需求,我这里配置这个:${project.basedir}/src

idea 编译protobuf 文件的设置使用_第11张图片

4、此处编译成功,最后对该项目pom文件里的标签整体解析一下,加深大家的理解:

 


    
        nmp-sdk
        com.navinfo.nmp
        1.0-SNAPSHOT
    
    4.0.0

    ${parent.groupId}
    nmp-sdk-proto
    jar
    1.0-SNAPSHOT

 
    
        
            com.rabbitmq
            amqp-client
            4.1.0
        
        
            commons-httpclient
            commons-httpclient
            3.1
        
        
        
            com.alibaba
            fastjson
            1.2.33
        
        
            org.slf4j
            slf4j-nop
            1.7.2
        

        
            org.locationtech.jts
             jts-core
            1.15.1
        

        
            org.projectlombok
             lombok
            1.18.4
        
        
            junit
            junit
            4.12
            compile
        
        
            com.google.protobuf
             protobuf-java
            3.9.0
        
        
            io.grpc
            grpc-core
            1.6.1
        
        
            io.grpc
            grpc-protobuf-lite
            1.6.1
        
        
            io.grpc
            grpc-protobuf
            ${grpc.version}
        
    
 
     
         
             lock-releases
             Release Deploy
             http://10.60.145.1:881/repository/maven-releases/
         

         
             lock-snapshot
             Snapshot Deploy
             http://10.60.145.241:881/repository/maven-snapshots/
         
     
    
        nmp-sdk-proto
        
            
                src/main/java
                
                    **/*.*
                
                
                    **/*.java
                
                false
            
            
                src/main/resources
                
                    **/*.*
                
                false
            
        
        
            
                maven-compiler-plugin
                3.7.0
                
                    1.8
                    1.8
                
            

            
                org.apache.maven.plugins
                maven-assembly-plugin
                
                    
                        jar-with-dependencies
                    
                
                
                    
                        make-assembly
                        package
                        
                            assembly
                        
                    
                
            

            
                org.xolstice.maven.plugins
                protobuf-maven-plugin
                0.5.1
                
                    
                    ${project.basedir}/proto
                    
                   
                    
                    ${project.build.sourceDirectory}
                    
                    false

                    
                    com.google.protobuf:protoc:${protobuf.version}:exe:${os.detected.classifier}
                    grpc-java
                    
                    io.grpc:protoc-gen-grpc-java:${grpc.version}:exe:${os.detected.classifier}
                
                
                    
                        
                            compile
                            compile-custom
                        
                    
                
            
        

        
            
                kr.motd.maven
                os-maven-plugin
                1.5.0.Final
            
        
    

    
        UTF-8
        UTF-8
        1.8
        0.0.1-SNAPSHOT
        
        1.6.1
        
        3.9.0
    

5、到此就 结束了,有不明白的地方欢迎留言!

 

 

 

 

你可能感兴趣的:(java相关,maven相关,protobuf相关,java,maven)