Maven项目不会将文件放在classpath中的src / main / resources中

时间:2015-12-01 12:30:41

标签: java eclipse maven 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个新的源文件夹:

Source folders

我将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");

注意:我运行代码的方式是在eclipse中作为java项目运行它。文件读取代码在我的主类中的main方法中是单行。

我想知道我错过了什么配置,以便eclipse / maven将src / main / resources文件夹视为我的类路径的根目录,而不仅仅是我必须明确命名的随机文件夹。它特别奇怪,因为我的log4j库找到并使用了资源文件夹中的另一个文件,即log4j.properties,没有任何问题。

注意:如果我构建我的项目并将其安装在我的本地存储库中,我实际上可以看到这两个文件(filename.txt和log4j.properties)整齐地位于目标/类下。

1 个答案:

答案 0 :(得分:0)

在您的项目上:

右键单击>属性> Java构建路径>来源:如果你有一些东西:

enter image description here 右键单击>属性>部署程序集:检查是否有类似的东西:

enter image description here

希望这有帮助。