maven protobuf 编译插件使用 (1)


背景

使用maven的protobuf插件可以在maven compile阶段编译.proto文件,生成.java文件。
这种编译方式比手动执行protoc命令,后面跟一堆易忘的参数(每次编译都得google或找之前记的笔记),要高效省心得多。

使用

网上搜索了一番,发现这个插件相对使用量多一些。


    org.xolstice.maven.plugins
    protobuf-maven-plugin
    0.5.1

在项目的pom.xml中加上如下配置后


    org.xolstice.maven.plugins
    protobuf-maven-plugin
    0.5.1
    
        
        /usr/local/bin/protoc3
        
        src/main/resources
        
        src/main/java
        
        false
    

在resouce目录中定义好proto文件,执行ll -r后proto所在文件目录如下:

./src/main/resources:
total 24
-rw-r--r--  1 sakura1  staff  384 Dec  6 20:44 log4j.properties
-rw-r--r--  1 sakura1  staff  181 Apr 18 17:20 student.proto
-rw-r--r--  1 sakura1  staff  179 Apr 18 17:19 teacher.proto

定义的proto文件如下:

syntax = "proto3";

option java_package = "me.fengfshao.pb";
option java_outer_classname = "StudentProto";

message Student{
  string name=1;
  string address=2;
  uint32 age=3;
}
syntax = "proto3";

option java_package = "me.fengfshao.pb";
option java_outer_classname = "TeacherProto";
****
message Teacher{
  string name=1;
  string address=2;
  uint32 age=3;
}

在项目中根目录 执行mvn protobuf:compile(或是利用idea的mvn插件,Lifecycle下面的Plugins,找到protobuf),执行完成后,可以发现.java文件出现在了对应的包中。

如果需要在代码编译时重新编译,可以将插件执行绑定在maven的生命周期中,在插件配置中加入如下内容:

  
      
          process-sources
          
              compile