簡體   English   中英

Maven項目不會將文件放在classpath的src / main / resources中

[英]Maven project doesn't put files in src/main/resources on classpath

我在Eclipse中有一個Java項目。 我想要讀取某個文件夾中的文件。 我使用以下代碼:

File file = new File("directory/filename.txt");

如果我有一個簡單的Java項目,則使用以下布局:

Project
|
+- src
+- lib
+- directory
   |
   + filename.text

代碼工作正常,我可以讀取文件。 如果我現在將此項目轉換為maven項目,則除了pom.xml文件和目標文件夾外,在Eclipse中所做的更改不多(恢復了以前隱藏的“ bin”輸出文件夾,現在它是常規文件夾。布局變為:

Project
|
+- src
+- lib
+- bin
+- target
+- directory
|  |
|  + filename.text
+- pom.xml

因為我想使用Maven項目設置,所以我刪除了src文件夾,並在Eclipse中的項目中添加了4個新的源文件夾:

源文件夾

我將filename.text復制到資源文件夾,該文件夾應自動將其內容放在類路徑中。 我的項目布局變為:

Project
|
+- src/main/java
+- src/main/resources
|   |
|   + filename.text
+- src/test/java
+- src/test/resources
+- lib
+- bin
+- target
+- pom.xml

現在我注意到該代碼不起作用(NoSuchFileException)

File file = new File("filename.txt");

但是這段代碼確實有效:

File file = new File("src/main/resources/filename.txt");

注意:我運行代碼的方式是將其作為Java項目在eclipse中運行。 在我的主類的main方法中,文件讀取代碼僅占一行。

我想知道我錯過了什么配置,因此eclipse / maven認為src / main / resources文件夾位於類路徑的根目錄下,而不只是我必須明確命名的隨機文件夾。 這特別奇怪,因為我的log4j庫找到並使用了資源文件夾中的另一個文件log4j.properties,沒有任何問題。

注意:如果構建項目並將其安裝在本地存儲庫中,則實際上可以看到兩個文件(filename.txt和log4j.properties)都整齊地位於目標/類下。

在您的項目中:

右鍵單擊>屬性> Java構建路徑>源 :如果您有類似以下內容:

在此處輸入圖片說明 右鍵單擊>屬性>部署程序集 :檢查是否有類似以下內容:

在此處輸入圖片說明

希望這可以幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM