我想用SnakeYAML (或其他解析器)解析Docker-compose.yml。我遇到的问题是属性既可以是字符串,也可以是更复杂的对象,比如configs,它支持“短”语法和“长”语法:
短的
version: "3.3"
services:
redis:
image: redis:latest
deploy:
replicas: 1
configs:
- my_config
- my_other_config
configs:
my_config:
file: ./my_config.txt
my_other_config:
external: true长
version: "3.3"
services:
redis:
image: redis:latest
deploy:
replicas: 1
configs:
- source: my_config
target: /redis_config
uid: '103'
gid: '103'
mode: 0440
configs:
my_config:
file: ./my_config.txt
my_other_config:
external: true如何将其映射到SnakeYAML?目前,我已经创建了Java Beans来对不同的元素进行建模,并将配置建模为List<String>,但这显然只适用于简短的语法。
发布于 2019-03-21 15:26:06
如果SnakeYaml遇到需要反序列化对象的字符串,它会查找带有字符串参数的构造函数。
因此,在本例中,只需为配置的长语法定义一个JavaBean,然后向以短语法为参数的构造函数添加一个构造函数就足够了。
https://stackoverflow.com/questions/54886815
复制相似问题