2014-08-27 84 views
2

我使用的Grails 2.4.3和我的項目,我需要在/src/java/com/company/MyClass.java如何在Grails應用程序中添加資源文件?

從一個.java加載資源文件,我想下面的代碼:

ClassLoader.getSystemResourceAsStream("myfile.txt") 

我試圖把文件放到項目中的任何地方,但似乎沒有找到它。

它在編譯期間將文件放入目標/類時起作用。但它不可行(我不能在每次部署時都這樣做)

如何在grails應用程序中聲明資源以用於Java代碼?

+0

它是什麼類型的文件,你想用它做什麼?通常網絡資源存儲在'/ web-app' – 2014-08-27 12:36:42

+0

這只是一個包含一些數據的文件。這不是一個網絡資源。在Maven中,我們可以在pom.xml中聲明資源文件夾。我如何用Grails或Java來做到這一點? – morgan 2014-08-27 13:23:47

回答

1

對於類路徑資源沒有專用的資源目錄,但源資源包含在源目錄中。

例如,您可以將您的資源放在grails-app/confsrc/java的子目錄中(最好是子目錄)。

您可能會遇到與系統類加載器(誰知道是什麼類加載器魔術在web應用中正在發生的事情)加載這些問題,但下面爲我工作得很好:

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

最後要注意的,如果該文件是java或groovy文件,並且您不希望它編譯(前一段時間我遇到了這種情況),那麼您可以選擇將其直接包含在正確的Web應用程序目錄中:​​

+0

在什麼情況下想要包含Java或Groovy文件而不編譯它? – 2014-08-27 23:40:47

+0

@Dónal:有幾種情況。在我的情況下,它是一個配置文件,我用ConfigSlurper讀取。也可以是腳本或模板。我還遇到了一個應該包含java代碼示例作爲資源的實例。 – Steinar 2014-08-28 06:42:36

相關問題