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