我目前开始研究一个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文档(这里有一个测试资源):
在单元测试中,您可以使用以下代码的简单代码段来访问测试所需的资源:
Run Code Online (Sandbox Code Playgroud)... // Retrieve resource InputStream is = getClass().getResourceAsStream("/test.properties" ); // Do something with the resource ...