Grails - 部署WAR文件后如何加载.properties文件

时间:2011-06-16 22:29:23

标签: grails properties war

所以我使用grails.config.locations = [“file:$ {basedir} /web-app/WEB-INF/app.properties”]

加载app.properties文件

但是当我通过创建WAR文件进行部署时,它具有不同的目录结构,其中app.properties文件位于WEB-INF / app.properties下,并且找不到该文件。

例如,运行WAR文件时未定义$ {basedir},其次,path不相同。 我已经尝试更改路径并删除了$ {basedir}等。是否有人知道如何获取在运行grails时以及部署为WAR文件时可以工作的属性文件?

非常感谢。

2 个答案:

答案 0 :(得分:1)

请参阅:https://stackoverflow.com/questions/6341117/is-it-possible-that-grails-xxconfig-groovy-as-a-script-no-compile

//Config.groovy
grails.config.locations =
["file:shared/TZLibConfig.groovy"]

//BuildConfig.groovy
grails.war.resources = { stagingDir, args ->
    copy(todir: "${stagingDir}/WEB-INF/shared"){
        fileset(dir:"shared",includes:"**")
    }
}

答案 1 :(得分:0)

几种可能的方法:

您可以确保属性文件位于正在运行的JVM的类路径中。您可以通过java -Dclasspath = / path / to / property / file在命令行上添加类路径:$ CLASSPATH

    Properties props = new Properties();
    URL url = ClassLoader.getSystemResource(propsName);
    props.load(url.openStream());
    return props;

您可以将位置指定为环境变量中的绝对值(System.getenv('FILELOCATION'))