如何将ApachAvroIDL编译成java?
我有一个apacheavroidl,它定义了一个协议,我希望在java客户机和用Python编写的服务器之间使用该协议如何将ApachAvroIDL编译成java?,java,python,avro,Java,Python,Avro,我有一个apacheavroidl,它定义了一个协议,我希望在java客户机和用Python编写的服务器之间使用该协议 @namespace("myproto.proto") protocol myproto { enum Status { STATUS_OK, STATUS_ERROR } record GameList { array<string> games; } void somefunc(int arg); }
@namespace("myproto.proto")
protocol myproto
{
enum Status
{
STATUS_OK,
STATUS_ERROR
}
record GameList
{
array<string> games;
}
void somefunc(int arg);
}
如何将IDL编译成Java?如果可能,不使用maven。您可以使用avro工具从IDL生成JSON模式:
java -jar avro-tools-1.7.4.jar idl /path/to/idl
然后像往常一样将模式编译成Java:
java -jar avro-tools-1.7.4.jar compile schema /path/to/schema .
我认为没有任何方法可以从IDL直接编译成Java。avro tools help(avro工具帮助)菜单没有显示此类选项。这对我不适用。我需要做的是“编译协议”。奇怪的是,IDL文件不能简单地描述模式,而不是协议。
java -jar avro-tools-1.7.4.jar compile schema /path/to/schema .