gpt4 book ai didi

avro - 在 Avro IDL 中,如何导入外部提供的架构?

转载 作者:行者123 更新时间:2023-12-01 05:43:26 27 4
gpt4 key购买 nike

一个简单的例子说明了我的问题。

本质上,我正在处理一个跨多个存储库拆分代码的大型项目。在 repo 1 中,在 .avdl 文件中定义了一个 Avro 模式“S1”,该文件被编译到其 Avro 生成的类中。

在 repo 2 中,将 repo 1 的编译工件作为依赖项拉进来,我需要创建一个具有多个记录的新模式,并且还需要嵌入 repo 1 的“S1”模式。

在 repo 2 中,我有一个包含所有 repo 2 模式的 IDL 文件,但我找不到在此 IDL 中包含 repo 1 模式的方法。我无法导入它,因为在 repo 2 中我无法访问 repo 1 中的架构文件。我确实可以访问 repo 1 中的 Avro 生成的类,但 IDL 似乎不支持引用它的方法。

我怎样才能做到这一点?如果这在 IDL 中是不可能的,我将如何在 JSON 中做到这一点? - 谢谢!

最佳答案

Avro IDL 的 import 语句将首先查找与输入文件相关的命名文件。但如果失败,它会在 Java 类路径上查找。因此,如果 repo 1 中的 jar 文件包含一个 IDL 文件,那么 repo 2 中的 IDL 文件应该能够通过其在 jar 文件中的路径导入它。

https://github.com/apache/avro/blob/master/lang/java/compiler/src/main/javacc/org/apache/avro/compiler/idl/idl.jj#L153

这似乎没有记录。请让我知道这对你有没有用。

关于avro - 在 Avro IDL 中,如何导入外部提供的架构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50472250/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com