自定义Grails环境的行为

时间:2012-03-05 05:29:24

标签: grails

我想要运行一个名为“local”的自定义环境......就像在本地开发中一样。在将战争部署到“共享”开发服务器之前,我会使用此配置(例如数据库连接)。但我注意到它缺少标准Grails“开发”环境的行为,例如刷新浏览器时无法使用GSP更改。

所以这让我想知道你如何改变自定义环境的行为?如何将“开发”的所有设置复制到另一个环境?

2 个答案:

答案 0 :(得分:5)

您可以在指定run-app标志的自定义环境中启用已修改gsp的重新加载:

-Dgrails.gsp.enable.reload=true

答案 1 :(得分:1)

我认为自动重新加载与环境无关。如果执行grails run-app,无论您在哪个环境下运行,都会发生重新加载。换句话说,所有

都会自动重新加载
  • grails dev run-app
  • grails prod run-app
  • grails test run-app

另一方面,如果使用grails war构建战争,然后部署它,则不会重新加载。因此重新加载取决于您运行应用程序的方式,而不是环境。定义与dev类似的自定义环境的最简单方法是定义一组默认配置,然后有选择地覆盖每个环境的设置,例如。

//default config
myApp {
    userRoleName = 'ROLE_USER'
    adminRoleName = 'ROLE_ADMIN'
    dateFormat = 'yyyy-MM-dd'
}

environments {
    // config overrides for dev
    development {
        myApp.dateFormat = 'yyyy/MM/dd'
    }

    // config overrides for local
    local {
        myApp.dateFormat = 'MM/yy/dd'
    }
}