thrift、avro、probobuf 这几个rpc框架的基本思想都差不多,先定义IDL文件,然后由各自的编译器(或maven插件)生成目标语言的源代码,但是,根据idl生成源代码这件事,如果每次都要手动敲命令,未免太无聊了,幸好这三种框架都提供了对应的maven插件来完成代码的自动生成,本文演示了这三种框架的maven插件用法。
一、maven-thrift-plugin
1 <?xml version="1.0" encoding="UTF-8"?> 2 <project xmlns="http://maven.apache.org/POM/4.0.0" 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 4 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 5 <modelVersion>4.0.0</modelVersion> 6 7 <groupId>yjmyzz</groupId> 8 <artifactId>thrift-contract</artifactId> 9 <version>1.0</version> 10 11 <properties> 12 <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 13 <compiler-plugin.version>2.3.2</compiler-plugin.version> 14 <thrift.version>0.9.2</thrift.version> 15 </properties> 16 17 <dependencies> 18 <dependency> 19 <groupId>org.apache.thrift</groupId> 20 <artifactId>libthrift</artifactId> 21 <version>${thrift.version}</version> 22 </dependency> 23 </dependencies> 24 25 <build> 26 <plugins> 27 <plugin> 28 <groupId>org.apache.maven.plugins</groupId> 29 <artifactId>maven-compiler-plugin</artifactId> 30 <version>${compiler-plugin.version}</version> 31 <configuration> 32 <encoding>${project.build.sourceEncoding}</encoding> 33 </configuration> 34 </plugin> 35 <plugin> 36 <groupId>org.apache.thrift.tools</groupId> 37 <artifactId>maven-thrift-plugin</artifactId> 38 <version>0.1.11</version> 39 <configuration> 40 <thriftExecutable>/usr/local/bin/thrift</thriftExecutable> 41 </configuration> 42 <executions> 43 <execution> 44 <id>thrift-sources</id> 45 <phase>generate-sources</phase> 46 <goals> 47 <goal>compile</goal> 48 </goals> 49 </execution> 50 <execution> 51 <id>thrift-test-sources</id> 52 <phase>generate-test-sources</phase> 53 <goals> 54 <goal>testCompile</goal> 55 </goals> 56 </execution> 57 </executions> 58 </plugin> 59 </plugins> 60 </build> 61 62 </project>