1

我正在尝试通过设置系统环境从外部加载属性文件。

在我的 config.groovy 文件中,

  println "Config file location --->" + System.getenv("SAM_ENV")
  grails.config.locations = ["file:"+ System.getenv("SAM_ENV")]

我已将系统 env SAM_ENV 值设置为 C:\test\config.properties。

当我尝试运行应用程序时,我得到的打印值为

     Config file location ---> C:\test\config.properties prints properly.

问题是当我尝试访问控制器中的属性文件时

        print "PAGINATION1"+grailsApplication.config.PAGINATION1

PAGINATION1 的值未正确打印。

任何人都可以帮助我访问 grails 应用程序中的外部属性文件需要进行哪些配置。

4

2 回答 2

0
Add the below line in config.groovy

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

environments {
    development {   
        grails.logging.jul.usebridge = true
        grails.config.locations = ["file:C:\\conf\\externalfile.groovy"]
    }
    production {
        grails.logging.jul.usebridge = false
        grails.config.locations = ["file:/opt/config/externalfile.groovy"]
        // TODO: grails.serverURL = "http://www.changeme.com"
    }
}

If you want to access any property from external configuration(config.groovy) then just declare the property like 

property = property value eg:(ImagePath = "C:\\Users\\Saved Pictures")

access it like grailsApplication.config."property"

eg:(grailsApplication.config.ImagePath)

NOTE: dont use def just a property and its value.
于 2017-09-16T18:26:21.113 回答
-1

您正在寻找的是扩展类路径,您可以通过在 _Events.groovy 中添加编译后事件来实现。尝试这个:

eventCompileEnd = {
ant.copy(todir:classesDirPath) {
     fileset(file:"C:\test\config.properties")
}}

你可以在这里找到更多帮助

于 2013-02-13T06:05:38.120 回答