我想以几种方式使用配置文件的内容,包括集成测试和我的BootStrap。如果我的配置文件在src/groovy下并且被称为“com.corp.MyConfig.groovy”,那么我应该传递给ConfigSlurper解析方法?我可以使用ConfigSlurper引用类路径中的配置文件吗?
回答
我猜会发生什么是你的Groovy文件被编译,并最终成为一个类在你的二进制目录(classpath)中。尝试加载脚本类,而不是尝试通过URL加载它。
Class scriptClass = getClass().classLoader.loadClass('com.corp.MyConfig')
ConfigObject config = new ConfigSlurper().parse(scriptClass)
如果你的配置文件可在classpath,我会建议使用ClassLoader.getResource方法,()得到它:
URL url = MyClass.class.getClassLoader().getResource("com/corp/MyConfig.groovy");
config = new ConfigSlurper().parse(url);
这应该在单元测试环境中工作,对吗?我正在使用单元测试类名称作为“MyClass”; 'url'为空。 – 2011-05-25 16:16:14
嗯,这意味着它无法在类路径中找到你的配置。尝试将资源名称更改为“groovy/com/corp/MyConfig.groovy”。 – dogbane 2011-05-25 16:31:36
没有运气,加入“groovy”的路径。 – 2011-05-25 16:59:21
从POGO你也可以使用:
import grails.util.Holders
class Foo {
def bar() {
println(Holders.config.grails.serverURL)
}
}
来源:How do I get at the goodies in my Grails Config.groovy at runtime?
- 1. Maven - 我可以在配置文件定义中引用配置文件ID吗?
- 2. 我可以使用js ajax调用的路径路径吗?
- 3. 您可以配置速度以使用类路径中的工具箱文件吗?
- 4. WCF日志记录可以配置为使用shell文件夹路径吗?
- 5. 我可以使用类路径覆盖正在运行的jar文件吗?
- 6. 我可以在web.config位置路径属性中使用通配符吗?
- 7. 我可以以编程方式更改使用PHP的文件路径吗?
- 8. 在awk的shell中,我可以使用变量而不是文件路径吗?
- 9. 我可以使用msbuild更新非xml配置文件吗?
- 10. 我可以使用配置文件作为键值对吗?
- 11. 引用弹簧属性文件使用路径相对于配置文件
- 12. 我可以在类库中引用一个exe文件吗?
- 13. 使用主应用程序的用户配置文件路径的Rails引擎
- 14. Java类路径和配置文件
- 15. 类路径和maven配置文件
- 16. 我可以使用属性文件和运行时配置来配置log4cxx吗?
- 17. 在Java中使用ResourceBundle类时,我们可以使用属性文件指定目录路径吗?
- 18. 我可以在我的xcopy路径中引用一个变量吗?
- 19. 可以使用.htaccess文件我躲在PHP的错误路径
- 20. 字体 - 您可以引用HTML中的路径吗?
- 21. 我可以在Kohana 3中使用一个路径定义吗?
- 22. Firefox:我可以在BASE标签中使用相对路径吗?
- 23. 我可以在Spring bean定义中使用相对路径吗?
- 24. 我可以使用JavaScript修改<input type ='file'>的文件路径吗?
- 25. 我可以使用glob来过滤现有的文件路径列表吗?
- 26. 我可以在'npm install'中设置npm使用的编译库路径吗?
- 27. 我可以在JQ中使用相对路径或通配符吗
- 28. 可以使用通配符指定目录路径吗?
- 29. 我们应该在配置文件中使用文件名的绝对路径还是相对路径?
- 30. 在配置文件提示中使用条件拆分路径
配置=新ConfigSlurper()解析(新文件(CONFIGFILE).toURI()的toURL()。 )如果“configFile”是“src/groovy/com/corp/MyConfig.groovy”,但我希望有更优雅的东西 - 一个不包含“src/groovy”的表达式,尤其如此。 – 2011-05-25 15:38:15