我正在做的似乎是在Grails中使用外部配置文件的最佳做法。
grails.config.locations = ["classpath:${appName}-config.groovy",
"file:./${appName}-config.groovy"]
if (System.properties["${appName}.config.location"]) {
grails.config.locations << "file:" + System.properties["${appName}.config.location"]
}
我在测试期间将配置文件放在根文件夹中,它可以正常工作。我在生产过程中手动将配置文件放在我们的Tomcat服务器的lib文件夹中(在类路径中)并且它有效。但我不想每次都要复制/创建我们的外部配置文件。在构建战争并部署应用程序后,是否可以将我的配置文件移动到正确的位置,以便在部署任何应用程序时不必手动移动它?感谢。
答案 0 :(得分:0)
注意:我会编辑问题的标题,以反映您的实际问题,即自动化。
这取决于您现有流程的手动 ...
让我们想象以下内容:
答案 1 :(得分:0)
在out project项目中,我们需要为每个环境(本地,开发,测试,生产)提供不同的配置设置。虽然我们希望避免在不同服务器上更新配置文件的麻烦,但我们需要允许在特定环境中快速覆盖配置值。
为了满足这些要求,我们提供了以下“级联”配置文件的设置:
只需在Config.groovy中提供配置文件位置列表,即可在Grail应用程序的startp上加载配置文件。 AppEnv类使用appEnv和appLibRoot环境变量创建配置文件列表,并检查类路径和文件系统中实际存在哪些文件。
Config.groovy
grails.config.locations = AppEnv.instance.configLocations