我们可以在IntelliJ中对YAML文件进行变量替换吗?

问题描述 投票:0回答:2

我正在使用IntelliJ开发Java应用程序,该应用程序使用YAML文件作为应用程序属性。这些YAML文件具有一些占位符/模板参数,例如:

credentials:
  clientId: ${client.id}
  secretKey: ${secret.key}

我的CI / CD管道负责根据要部署的参数的环境(client.idsecret.key)替换实际值。

我正在IntelliJ中寻找类似的东西。诸如此类,我在IDE中为参数(例如:client.idsecret.key)配置了一些静态/固定值,当我使用IDE在本地运行时,这些值应替换为这些YAML文件并运行。

这实际上使我免于每次在版本控制系统中进行其他一些更改时都使用占位符参数更新YAML文件。

intellij-idea intellij-plugin
2个回答
0
投票

我在IDEA中看不到这种功能。

我建议您使用git stash保存这些配置文件的修改版本。并在需要时应用这些隐藏物。

如果您认为此功能很受欢迎,也可以在YouTrack上为此创建功能请求。


0
投票

IDEA中没有这样的功能,因为IDEA无法自动检测您可以在yaml文件中使用的所有可能的已知或未知表达语言或模板宏。此外,IDEA必须为此模板文件或这些模板文件创建上下文。

对于IDEA,它只是一个普通的yaml文件。

IDEA具有language injection功能。例如,它可以用于将sql注入到Java字符串中,或​​将任何语言注入到yaml字段中。这是一个非常好的功能,可以帮助您将sql列名aso重命名。但这不能解决您的特殊问题,因为您希望在定义变量的特定上下文中使该模板“可运行”。

我的建议是,编写一个与模板引擎几乎相同的小程序。

[当您只需要简单的字符串替换而无需宏执行时,可以通过正则表达式来完成。如果更复杂,我将使用与“真实处理器”相同的模板引擎。

如果您需要进一步的帮助,最好了解yaml处理管道的外观。

© www.soinside.com 2019 - 2024. All rights reserved.