0

Java クライアントと Python で記述されたサーバーの間で使用したいプロトコルを定義する Apache AVRO IDL があります。

@namespace("myproto.proto")

protocol myproto 
{

  enum Status
  {
    STATUS_OK,
    STATUS_ERROR
  }

  record GameList
  {
    array<string> games;
  }

  void somefunc(int arg);
}

Python の場合、これを使用します。

AVROTOOLS=$(TOOLS_PATH)/avro-tools-1.7.4.jar
java -jar $(AVROTOOLS) idl fairunfair.avdl fairunfair.avpr

IDL を Java にコンパイルするにはどうすればよいですか? 可能であれば、Mavenを使用せずに。

4

1 に答える 1

1

avro-tools を使用して、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 ヘルプ メニューには、そのようなオプションはありません。

于 2013-11-08T21:21:49.843 に答える