-
Notifications
You must be signed in to change notification settings - Fork 1
zh_autoGenSchema
Ray edited this page Jul 13, 2020
·
4 revisions
当Java项目需要与其他语言远程交互时,可以对Java项目中的对象生成Breeze Schema,然后通过breeze-generator,使用Schema自动创建其他语言的Breeze Message对象,进行远程交互。
- 配置maven plugin
<build>
<plugins>
<plugin>
<groupId>com.weibo</groupId>
<artifactId>breeze-maven-plugin</artifactId>
<version>0.1.3</version>
<executions>
<execution>
<goals>
<goal>schema</goal>
</goals>
</execution>
</executions>
<configuration>
<!-- <xmlPath>${basedir}/src/main/resources</xmlPath> -->
<classes>
<class>com.weibo.Mytest</class>
<class>com.weibo.Mytest$InnerTest</class>
</classes>
</configuration>
</plugin>
</plugins>
</build>
对Motan服务依赖的对象生成Schema
可以通过配置configuration中的xmlPath配置项,指定需要扫描的目录,当执行 mvn breeze:schema
生成schema时,会扫描对应路径中所有的xml文件,
如果文件中包含motan:referer配置项,则会对motan:referer中的interface中所有方法的入参及返回值进行检测,并生成对应的Schema文件。
xmlPath的默认路径是${basedir}/src/main/resources
, 也就是说,如果Motan rpc的配置文件如果放在默认路径中的话,是不需要配置xmlPath参数的。
除了支持对Motan rpc服务接口自动生成Schema外,也可以指定类名来生成Schema。
可以通过在configuration中配置classes列表项,来指定想要生成Schema的类名。如果是内部类的话,需要使用主类名$内部类名
方式书写类名
执行 mvn breeze:schema
后会按照configuration自动生成Schema,生成信息会输出到maven执行日志中。
生成后的scheam统一放在META-INF/breeze
目录下,每个类对应一个.breeze的Schema文件。
项目编译时这些Schema文件也会被一同打包,编译后的.breeze文件头中会包含生成时对应类的版本信息,便于查看及进行版本管理。