Maven的pom.xml中resources標(biāo)簽的用法
pom.xml中resources標(biāo)簽的用法
我們先看一下spring-boot-starter-parent-2.4.1.pom文件中的resources標(biāo)簽,可以直接在Maven倉庫中找當(dāng)然也可以在idea中查看
spring-boot-starter-parent-2.4.1.pom文件中resources標(biāo)簽內(nèi)容如下:
<build> <resources> <resource> <directory>${basedir}/src/main/resources</directory> <filtering>true</filtering> <includes> <include>**/application*.yml</include> <include>**/application*.yaml</include> <include>**/application*.properties</include> </includes> </resource> <resource> <directory>${basedir}/src/main/resources</directory> <excludes> <exclude>**/application*.yml</exclude> <exclude>**/application*.yaml</exclude> <exclude>**/application*.properties</exclude> </excludes> </resource> </resources> </build>
先做一下實(shí)驗(yàn),看一下結(jié)果,我們再來給出這個標(biāo)簽的含義是什么
先在maven工程的resources目錄下面創(chuàng)建2個配置文件
再修改pom文件,修改內(nèi)容如下
<!--在properties標(biāo)簽中添加變量test.name--> <properties> <test.name>測試內(nèi)容test01</test.name> </properties> <!--在build標(biāo)簽中添加resources標(biāo)簽--> <build> <resources> <resource> <directory>src/main/resources</directory> <filtering>true</filtering> <includes> <include>a.properties</include> </includes> </resource> </resources> </build>
再在a.properties文件中引用pom文件中定義的變量值
a.name=${test.name}
b.properties文件中的內(nèi)容如下
b.name=${test.name}
打包完成后在target目錄下的classes類路徑下的內(nèi)容如下
<build> <resources> <resource> <directory>src/main/resources</directory> <filtering>true</filtering> <includes> <include>a.properties</include> </includes> </resource> </resources> </build>
從這里可以得出結(jié)論:上面這段配置的含義是如果filtering標(biāo)簽的值設(shè)置成true,默認(rèn)值是false,則在工程進(jìn)行編譯打包的時候只會將工程的src/main/resources目錄下的includes標(biāo)簽中的資源文件打包進(jìn)去,并且會進(jìn)行預(yù)編譯(就是就將資源文件中引用pom文件中的properties標(biāo)簽中的變量,轉(zhuǎn)化其對應(yīng)的值),除了includes標(biāo)簽中的資源文件的其它資源文件都不會被打包進(jìn)去。
再修改pom文件的resources標(biāo)簽
<build> <resources> <resource> <directory>src/main/resources</directory> <filtering>true</filtering> <includes> <include>a.properties</include> </includes> </resource> <resource> <directory>src/main/resources</directory> <!--filtering標(biāo)簽的值默認(rèn)是false,在這里可寫可不寫--> <filtering>false</filtering> <excludes> <exclude>a.properties</exclude> </excludes> </resource> </resources> </build>
進(jìn)行編譯打包,結(jié)果如下
<resource> <directory>src/main/resources</directory> <!--filtering標(biāo)簽的值默認(rèn)是false,在這里可寫可不寫--> <filtering>false</filtering> <excludes> <exclude>a.properties</exclude> </excludes> </resource>
由此可知這段配置的含義是:在項(xiàng)目進(jìn)行打包的時候會將src/main/resources目錄下除了a.properties資源文件的其它資源文件打包進(jìn)去,并且這些打包進(jìn)去的資源文件的內(nèi)容不會進(jìn)行預(yù)編譯,之前是什么樣子,打完包之后還是什么樣子。
總結(jié)
如果項(xiàng)目打包的時候,想對某個資源文件中的內(nèi)容進(jìn)行預(yù)編譯再打包進(jìn)去,而對其他的資源文件不進(jìn)行預(yù)編譯處理打包到項(xiàng)目中,則可以按照如下配置進(jìn)行處理
<resources> <resource> <directory>src/main/resources</directory> <filtering>true</filtering> <includes> <include>需要進(jìn)行預(yù)編譯的資源文件名稱如:a.properties</include> </includes> </resource> <resource> <directory>src/main/resources</directory> <!--filtering標(biāo)簽的值默認(rèn)是false,在這里可寫可不寫--> <filtering>false</filtering> <excludes> <exclude>上面includes標(biāo)簽中的資源文件名稱如:a.properties</exclude> </excludes> </resource> </resources>
resources標(biāo)簽結(jié)合mybatis使用
如果想要將mapper.xml文件和mapper接口同一個包中,并且在項(xiàng)目打包的時候需要作為資源文件也要打包進(jìn)去,比如項(xiàng)目的結(jié)構(gòu)如下
可以在pom文件中進(jìn)行如下配置
<build> <resources> <!--將src/main/java目錄下的所有xml文件都作為項(xiàng)目的資源文件, 項(xiàng)目打包的時候也會打包進(jìn)去 --> <resource> <directory>src/main/java</directory> <includes> <include>**/*.xml</include> </includes> </resource> <!--將項(xiàng)目的src/main/resources目錄下的所有文件都作為項(xiàng)目的資源文件 項(xiàng)目打包的時候也會打包進(jìn)去 --> <resource> <directory>src/main/resources</directory> </resource> </resources> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build>
到此這篇關(guān)于Maven的pom.xml中resources標(biāo)簽的用法的文章就介紹到這了,更多相關(guān)Maven pom.xml resources標(biāo)簽內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- IDEA?報(bào)Plugin'maven-resources-plugin:'not?found?的解決方案
- maven打包插件的使用(maven-compiler-plugin、maven-dependency-plugin、maven-jar-plugin、maven-resources-plugin)
- 解決問題:Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.2.0:resources
- Maven中resources標(biāo)簽的用法詳解
- Maven項(xiàng)目中resources配置總結(jié)
- Maven項(xiàng)目讀取resources文件路徑問題解決方案
- Maven項(xiàng)目中讀取src/main/resources目錄下的配置文件的方法
相關(guān)文章
解決idea2024版本創(chuàng)建項(xiàng)目時沒有java?8的版本選擇
這篇文章主要介紹了在使用IntelliJ?IDEA創(chuàng)建Spring?Boot項(xiàng)目時遇到的問題,包括Java版本選擇受限和項(xiàng)目結(jié)構(gòu)不完整,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下2025-03-03SpringBoot與MyBatis-Plus的高效集成方式
本文詳細(xì)介紹了如何在SpringBoot項(xiàng)目中整合MyBatis-Plus,包括環(huán)境準(zhǔn)備、實(shí)體類與Mapper接口定義、CRUD操作、條件構(gòu)造器、事務(wù)管理、安全性考慮、性能優(yōu)化、版本兼容性與遷移、實(shí)際應(yīng)用場景和監(jiān)控與日志等內(nèi)容,通過這些步驟,讀者可以掌握MyBatis-Plus的高級特性和最佳實(shí)踐2024-11-11Java中的NoSuchMethodException異常原因以及解決方案詳解
這篇文章主要介紹了Java中的NoSuchMethodException異常原因以及解決方案詳解,NoSuchMethodException是Java反射機(jī)制中的異常,在嘗試通過反射獲取方法時,找不到指定的方法,通常發(fā)生在調(diào)用?Class?對象的方法時,當(dāng)方法名或方法參數(shù)不匹配時拋出該異常,需要的朋友可以參考下2024-02-02關(guān)于SpringBoot靜態(tài)資源路徑管理問題
這篇文章主要介紹了SpringBoot靜態(tài)資源路徑管理,主要包括默認(rèn)靜態(tài)資源路徑,增加靜態(tài)資源路徑前綴的相關(guān)操作,本文給大家介紹的非常詳細(xì),需要的朋友可以參考下2022-05-05SpringMVC文件上傳原理及實(shí)現(xiàn)過程解析
這篇文章主要介紹了SpringMVC文件上傳原理及實(shí)現(xiàn)過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-07-07