首页 > 解决方案 > 如何使用 jacksoon-dataformat-yaml 高效管理 Java 中的 YAML 文档?

问题描述

我正在寻找有关如何提高从 Java 应用程序合成 docker-compose.yml 文件的效率的建议。我想探索使用 Java 绑定样式机制来做到这一点的可能性(类似于 JAXB 对 XML 的支持)。

这应该是人们可能想做的一件非常普遍的事情。然而,我无法找到一种有原则且定义明确的方法的描述。

使用 XML,我会将 XSD 模式提供给 JAXB 绑定工具,该工具将为我生成相应的 Java 类层次结构以及 [un-] 编组代码。然后,我将在内存中填充 Java 类并将它们序列化为 XML 文件/流。

以下是我的问题:

对上述几点的任何建议将不胜感激。

标签: bindingjacksondocker-composeyamlschema

解决方案


我想没有人对我有一个好的答案,所以我以次优的方式解决了这个问题,但仍然比采用某种启发式方法更好:

  1. 我创建了一个简单的 XML 模式,其中包含 docker_compose YAML 规范中存在的数据子集。这是我的过程中唯一接近现实的步骤,而不是完全正确的实现。架构不完整,仅包含我关心的内容。当我开发对其他 docker_compose 选项的需求时,我可能会在以后对其进行扩展。

  2. 我正在使用 JAXB 来建立从这个近似模型到 Java 类层次结构的绑定。

  3. 我以编程方式使用数据填充了这个层次结构中的类,然后使用 jackson yaml 插件来编组包含我需要的内容的 docker_compose.yml 文件。

这种方法非常次优,但似乎有效。仍然希望我能做得更好,但现在必须适应这个近似值。更多建议表示赞赏。


推荐阅读