4

在我的Config.groovy我放行:

grails.config.locations = [ "classpath:app-config.properties"]

我在哪里设置数据源的定义。文件看起来像:

dataSource.url=jdbc:mysql://host/instance
dataSource.username=u
dataSource.password=p

并且它正确地替换了DataSource.groovy.

问题是它替换了每个环境的配置,但我需要为开发、测试和生产单独配置。尝试将不同的条目放入文件中,例如:

environments.development.dataSource.url=jdbc:mysql://host/dev
...
environments.production.dataSource.url=jdbc:mysql://host/prod
...

以定义的默认数据源属性结束DataSource.groovy。如何使一个属性文件适用于不同的环境?

4

1 回答 1

8

有几种可能的方法。这里有一对:

  1. 在您的外部配置文件名中嵌入当前环境名称:

    grails.config.locations = [ "classpath:app-${grails.util.Environment.current.name}-config.properties"]

    这将导致app-development-config.properties在开发模式、app-test-config.properties测试等中加载。

  2. 使用.groovy配置格式而不是.properties. 使用.groovy配置文件,您可以使用该environment { ... }块。

于 2013-03-13T16:27:43.533 回答