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

我目前开始研究一个maven web-app项目,该项目需要使用jetty启动:run-explosion目标,用于eclipse中的开发/调试。

现在,我有一个XML文件,其中包含我需要在运行时访问的内容。 我的问题是:在哪里放置文件,以便执行读取的代码在“爆炸”和打包(即在WAR)模式下工作?

将文件放在src / main / java中(以便在类路径中)将不会删除它,因为maven过滤掉包装上的所有非java文件。 当文件在src / main / resources中时,一个意思是找出项目的根路径(在eclipse开发期间)并查看该目录 – 但是当项目打包时,情况就不再是这样了。

当然,我可以编写试图从两个位置读取文件的代码,但这看起来相当麻烦。 有什么建议么?

src/main/resources中的文件将复制到target/classes目录,并在类路径中可用。 只需从类路径中读取它们即可。 如我如何向JAR添加资源中所述? 从maven文档(这里有测试资源):

在unit testing中,您可以使用如下所示的简单代码片段来访问测试所需的资源:

 ... // Retrieve resource InputStream is = getClass().getResourceAsStream("/test.properties" ); // Do something with the resource ... 

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