如何将ApachAvroIDL编译成java?

如何将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); }

我有一个apacheavroidl,它定义了一个协议,我希望在java客户机和用Python编写的服务器之间使用该协议

@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 .