![](/img/trans.png)
[英]Make Eclipse use src/test/resources instead of src/main/resources
[英]Use src/test/resources as directory with gradle java
我有兩個包含 java 代碼和資源的工作目錄,一個用於測試,另一個用於生產。
源代碼/主/Java
源代碼/主要/資源
源代碼/測試/Java
源代碼/測試/資源
當運行我的代碼並從 FileInputStream 讀取文件時,如下所示:
new FileInputStream("./someFile.json");
只要文件位於項目的根目錄中,就可以正常工作。 如果我在資源文件夾中有文件並像這樣直接指向它,它也可以工作:
new FileInputStream("src/test/resources/someFile.json");
有沒有辦法將 gradle 中的 src/test/resources 聲明為 FileInputStream 查找資源的主文件夾?
如果我把我的文件像這樣它工作正常。
但是當我像這樣將文件放在 src/test/java/resources 中時
我收到一個 fileNotFoundException。
我需要一種方法來添加此目錄以使用 gradle 進行掃描。
將此添加到 build.gradle 仍然會引發 fileNotFoundException。
sourceSets {
test {
java {
srcDirs = ['src/test/java']
}
resources {
srcDirs = ['src/test/resources']
}
}
}
如果你使用java
或者,因為你似乎正在構建一個命令行應用程序, application
插件,一切都會為你設置開箱即用:
plugins {
id 'application'
}
您可以刪除所有sourceSet
配置,然后像這樣加載文件:
new FileInputStream("/someFile.json");
(請注意,我寫的是/
而不是./
這將含義從“查看當前目錄,項目根目錄”更改為“查看類路徑資源的根目錄”。)
最好遵循 Slaw 在問題下的評論並通過Class#getResourceAsStream(String)定位文件 - 但這有點超出了您的問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.