在SymmetricDS引擎属性中读取环境变量

时间:2016-12-12 09:53:40

标签: environment-variables build.gradle symmetricds

我使用Gradle Application plugin创建了SymmetricDS的zip分发版。在环境(测试,升级,生产等)之间切换的简单方法会很好。

SymemtricDS User Guide

SymmetricDS will automatically create a node for each Node Properties
File configured in the engines directory

因此,可能无法为所有环境定义引擎并选择启动哪个引擎,而无需手动执行此操作。

更好的方法可能是让SymmetricDS读取一些环境变量并使用它们来定义例如引擎文件中的db.url。这样,相同的配置可用于所有环境。这可能吗?

2 个答案:

答案 0 :(得分:3)

有几个要求这样的事情。我注意到设置docker镜像的人也可以从指定动态属性中受益。我在3.8.12中添加了使用环境变量或系统属性进行令牌替换的功能。

以下是跟踪它的问题:https://www.symmetricds.org/issues/view.php?id=2945

答案 1 :(得分:0)

使用Gradle Resource filtering替换symmetric-ds.properties文件中的变量占位符。例如

db.url=${env.db.url}
db.user=${env.db.user}
db.password=${env.db.password}

然后创建尽可能多的配置文件,因为有些环境会保存占位符的实际值,例如dev.conf

env.db.url=jdbc://db_host:1520
env.db.user=my_user
env.db.user=p4$$vv0rd

使用命令行参数选择gradle assembly命令的环境,该命令将选择一个conf文件