如何在Grails应用程序中添加资源文件?

时间:2014-08-27 12:15:05

标签: java grails resources

我正在使用Grails 2.4.3,对于我的项目,我需要从/src/java/com/company/MyClass.java中的.java加载资源文件

我尝试了以下代码:

 ClassLoader.getSystemResourceAsStream("myfile.txt")

我试图将文件放在项目的任何地方,但它似乎找不到它。

当我在编译期间将文件放在目标/类中时,它工作。但它不可行(我不能在每次部署时都这样做)

如何在grails应用程序中声明资源以在Java代码中使用?

1 个答案:

答案 0 :(得分:1)

类路径资源没有专用资源目录,但源目录中包含资源。

您可以将资源放在grails-app/confsrc/java的(最好是子目录)中。

您可能会遇到使用系统类加载器加载它们的问题(谁知道Web应用程序中发生了什么类加载器魔术),但以下工作对我来说很好:

def myFileContents = getClass().getResource('/mydir/myfile.txt').text

最后要注意的是,如果文件是java或groovy文件,并且您不希望它编译(我之前遇到过这种情况),那么您可以选择将其直接包含在正确的Web中应用程序目录:web-app/WEB-INF/classes/mydir/myfile.groovy