我想以幾種方式使用配置文件的內容,包括集成測試和我的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. 我可以在NSIS CopyFiles命令的文件路徑中使用通配符嗎?
- 3. 我可以使用js ajax調用的路徑路徑嗎?
- 4. 可以配置sqlcmd.exe路徑嗎?
- 5. 您可以配置速度以使用類路徑中的工具箱文件嗎?
- 6. WCF日誌記錄可以配置爲使用shell文件夾路徑嗎?
- 7. 我可以使用類路徑覆蓋正在運行的jar文件嗎?
- 8. 我可以在web.config位置路徑屬性中使用通配符嗎?
- 9. 我可以使用通用文件路徑預處理LESS文件嗎?
- 10. 我可以在access_control安全配置中使用路由嗎?
- 11. 我們可以在Zuul路由配置中使用HTTPMethod嗎?
- 12. 我可以以編程方式更改使用PHP的文件路徑嗎?
- 13. 我可以使用WIF配置Siteminder嗎?
- 14. 在awk的shell中,我可以使用變量而不是文件路徑嗎?
- 15. 我可以使用msbuild更新非xml配置文件嗎?
- 16. 我可以使用配置文件作爲鍵值對嗎?
- 17. 我可以在Symfony2的容器中使用「/ web」路徑嗎?
- 18. 我可以使用插件更改Firefox中的配置值嗎?
- 19. 在使用可執行jar時將配置文件加載到類路徑中
- 20. 我可以在類庫中引用一個exe文件嗎?
- 21. Django - 如何引用靜態文件的路徑,我可以在模型中使用它們嗎?
- 22. 如何使用ConfigSlurper配置一個JavaBean
- 23. 引用彈簧屬性文件使用路徑相對於配置文件
- 24. 使用ConfigSlurper解析配置文件時出現multipleCompilationError
- 25. 使用主應用程序的用戶配置文件路徑的Rails引擎
- 26. 類路徑和maven配置文件
- 27. Java類路徑和配置文件
- 28. 可以讓jar文件在類路徑中出現兩次嗎?
- 29. 我可以使用屬性文件和運行時配置來配置log4cxx嗎?
- 30. 我可以在我的xcopy路徑中引用一個變量嗎?
配置=新ConfigSlurper()解析(新文件(CONFIGFILE).toURI()的toURL()。 )如果「configFile」是「src/groovy/com/corp/MyConfig.groovy」,但我希望有更優雅的東西 - 一個不包含「src/groovy」的表達式,尤其如此。 – 2011-05-25 15:38:15