Это зависит.
Если вы хотите рассматривать config.yaml
как обычный текстовый файл, то вы можете просто использовать обычные Groovy способы работы с IO:
String path = 'path/to/file'
File cfgFile = new File(path, 'config.yml')
cfgFile.withWriterAppend() { writer ->
writer.writeLine('\ntag: 1.1.1')
}
или просто
new File(path, 'config.yml') << '\ntag: 1.1.1'
Но если вы хотите создать что-то более сложное и осведомленное о формате YAML этого файла, то вы можете использовать библиотеку SnakeYaml:
@Grapes([
@Grab(group='org.yaml', module='snakeyaml', version='1.25')
])
import org.yaml.snakeyaml.Yaml
String path = '../data/'
File cfgFile = new File(path, 'config.yaml')
Yaml yaml = new Yaml()
Map content = [:]
cfgFile.withReader { reader ->
content = yaml.load(reader)
}
content.put('tag', '1.1.1')
cfgFile.withWriter { writer ->
yaml.dump(content, writer)
}
Если вы используете Groovy 3.0+, тогда вы вместо этого можно использовать встроенные YamlSlurper
и YamlBuilder
.
(Groovy 3.0 еще не выпущено на момент написания этого ответа)
Один из недостатков здесь заключается в том, что анализ и перезапись Файл yaml избавится от комментариев и переформатирует весь файл.