Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何访问maven项目中的XML文件,使其在打包时保持可用_Java_Maven 2 - Fatal编程技术网

Java 如何访问maven项目中的XML文件,使其在打包时保持可用

Java 如何访问maven项目中的XML文件,使其在打包时保持可用,java,maven-2,Java,Maven 2,我目前开始从事一个maven web应用程序项目,该项目需要在eclipse中以jetty:run为开发/调试目标启动 现在,我有了一个XML文件,我需要在运行时访问该文件的内容。我的问题是:将文件放在哪里,以便读取的代码在“分解”和打包(即在WAR)模式下工作 将文件放在src/main/java中(以便放在类路径中)不会切断它,因为maven会在打包时过滤掉所有非java文件。 当文件位于src/main/resources中时,一种方法是找出项目的根路径(在eclipse开发期间)并查看该

我目前开始从事一个maven web应用程序项目,该项目需要在eclipse中以jetty:run为开发/调试目标启动

现在,我有了一个XML文件,我需要在运行时访问该文件的内容。我的问题是:将文件放在哪里,以便读取的代码在“分解”和打包(即在WAR)模式下工作

将文件放在src/main/java中(以便放在类路径中)不会切断它,因为maven会在打包时过滤掉所有非java文件。 当文件位于src/main/resources中时,一种方法是找出项目的根路径(在eclipse开发期间)并查看该目录,但在打包项目时就不再是这种情况了


当然,我可以编写代码,尝试从两个位置读取文件,但这似乎相当麻烦。任何建议?

src/main/resources
中的文件复制到
target/classes
目录中,并可在类路径中找到。只需从类路径中读取它们。如maven文档中所述(此处有测试资源):

在单元测试中,您可以使用一个简单的 下面这样的代码片段 访问所需的资源 测试:

...

// Retrieve resource
InputStream is = getClass().getResourceAsStream("/test.properties" );

// Do something with the resource

...

在这种情况下,我将文件放在
src/main/resources
目录下,并使用Spring的。通过这种方式,可以在IDE中、Maven构建过程中和运行时访问该文件