所以我使用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文件时可以工作的属性文件?
非常感谢。
答案 0 :(得分:1)
//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'))