springboot项目打包webapp、resources和自定义文件夹
1、打包 webapp和resources
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/**</include>
</includes>
<!-- 开启过滤,用指定的参数替换directory下的文件中的参数 -->
<filtering>true</filtering>
</resource>
<resource>
<directory>src/main/webapp</directory>
<targetPath>META-INF/resources</targetPath>
<includes>
<include>**/**</include>
</includes>
</resource>
</resources>
</build>
2、打包自定义文件夹
<resource>
<directory>src/main/resources/xmlTemplate</directory>
<targetPath>xmlTemplate</targetPath>
</resource>
SpringBoot打成jar包后无法获取Resources文件
在前几天项目开发过程中,因为业务需要,自己定义了一个xml
文件放到了resources
文件夹下,通过Spring
的ResourceUtils
来获取文件,代码如下:
File testFile = ResourceUtils.getFile(ResourceUtils.CLASSPATH_URL_PREFIX + "test.xml");
后来打成jar包放到测试环境后,这种方式就获取不到文件了,百度了一波,遇到同样问题的小伙伴还挺多,解决方案也五花八门,找了一种比较简便的方式,使用ClassPathResource
,如下所示:
ClassPathResource classPathResource = new ClassPathResource("text.xml"); // 解决把成jar包后无法读取文件的问题
boolean exists = classPathResource.exists(); // 判断文件是否存在
File file = classPathResource.getFile(); // 获取文件对象
InputStream inputStream = classPathResource.getInputStream(); // 获取文件输入流
ClassPathResource
也提供了相关的方法,使用也挺方便的。
此种方式不管打没打成jar包都可获取。