1. SpringBoot - resource資源文件的打包配置詳解(指定資源文件位置)
(1)默認 Spring Boot 項目結構,資源文件放置在 src/main/resources 中,測試的資源文件在 src/test/resources 中。
src/main/resources 與 src/test/resources 的區別:
(2)將項目打包後,解壓 jar 可以發現原先 src/main/resources 目錄下的資源文件已經被打包進來了:
(3)但有時我們的資源文件並不一定是放在 src/main/resources 目錄下,比如我的項目通常會將資源文件放在 src/test/resources 目錄下:
原因:根據實踐經驗表明,測試完後的配置項是最完整的,且經常會忘記替換正式版參數,因而選擇將配置文件全部放置在 src/test/resources 目錄下。
(4)又比如 mybatis 的 mapper.xml 文件,我們習慣把它和 Mapper.java 放一起
(5)但上面這兩種情況的資源文件,在使用 maven 打包時是不會被打包進 jar 的。這時候我們便要指定需要打包的資源文件,這個有如下兩種方法可以實現。
(1)<resources> 標簽位於 <build> 標簽內,用於指定項目資源文件的位置。比如下面配置我們指定了 src/test/resources 也是資源文件目錄:
(2)而對於寫在包下的 Mapper.xml 文件,我們則可以通過如下配置指明資源文件位置:
提示:其中 * / 這樣的寫法,是為了保證各級子目錄下的資源文件被打包。
(3)我們還可以通過 excludes 標簽剔除不需要的資源:
(1)除了使用 <resources> 標簽外,我們也可以使用 maven-resources-plugin 插件實現同樣的目的。比如下面配置把 src/test/resources 目錄下的資源文件打包到 classes 目錄下:
(2)而對於寫在包下的 Mapper.xml 文件,我們也可以通過 maven-resources-plugin 插件將其打包到相應位置:
(3)使用 maven-resources-plugin 插件時,我們同樣可以通過 excludes 標簽剔除不需要的資源: