Maven的pom.xml中resources標(biāo)簽的用法
pom.xml中resources標(biāo)簽的用法
我們先看一下spring-boot-starter-parent-2.4.1.pom文件中的resources標(biāo)簽,可以直接在Maven倉(cāng)庫(kù)中找當(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é)果,我們?cè)賮?lái)給出這個(gè)標(biāo)簽的含義是什么
先在maven工程的resources目錄下面創(chuàng)建2個(gè)配置文件
再修改pom文件,修改內(nèi)容如下
<!--在properties標(biāo)簽中添加變量test.name--> <properties> <test.name>測(cè)試內(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)行編譯打包的時(shí)候只會(huì)將工程的src/main/resources目錄下的includes標(biāo)簽中的資源文件打包進(jìn)去,并且會(huì)進(jìn)行預(yù)編譯(就是就將資源文件中引用pom文件中的properties標(biāo)簽中的變量,轉(zhuǎn)化其對(duì)應(yīng)的值),除了includes標(biāo)簽中的資源文件的其它資源文件都不會(huì)被打包進(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)行打包的時(shí)候會(huì)將src/main/resources目錄下除了a.properties資源文件的其它資源文件打包進(jìn)去,并且這些打包進(jìn)去的資源文件的內(nèi)容不會(huì)進(jìn)行預(yù)編譯,之前是什么樣子,打完包之后還是什么樣子。
總結(jié)
如果項(xiàng)目打包的時(shí)候,想對(duì)某個(gè)資源文件中的內(nèi)容進(jìn)行預(yù)編譯再打包進(jìn)去,而對(duì)其他的資源文件不進(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接口同一個(gè)包中,并且在項(xiàng)目打包的時(shí)候需要作為資源文件也要打包進(jìn)去,比如項(xiàng)目的結(jié)構(gòu)如下
可以在pom文件中進(jìn)行如下配置
<build> <resources> <!--將src/main/java目錄下的所有xml文件都作為項(xiàng)目的資源文件, 項(xiàng)目打包的時(shí)候也會(huì)打包進(jìn)去 --> <resource> <directory>src/main/java</directory> <includes> <include>**/*.xml</include> </includes> </resource> <!--將項(xiàng)目的src/main/resources目錄下的所有文件都作為項(xiàng)目的資源文件 項(xiàng)目打包的時(shí)候也會(huì)打包進(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)容請(qǐng)搜索腳本之家以前的文章或繼續(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)
- 解決問(wèn)題: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文件路徑問(wèn)題解決方案
- Maven項(xiàng)目中讀取src/main/resources目錄下的配置文件的方法
相關(guān)文章
解決idea2024版本創(chuàng)建項(xiàng)目時(shí)沒(méi)有java?8的版本選擇
這篇文章主要介紹了在使用IntelliJ?IDEA創(chuàng)建Spring?Boot項(xiàng)目時(shí)遇到的問(wèn)題,包括Java版本選擇受限和項(xiàng)目結(jié)構(gòu)不完整,文中通過(guò)圖文介紹的非常詳細(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)用場(chǎng)景和監(jiān)控與日志等內(nèi)容,通過(guò)這些步驟,讀者可以掌握MyBatis-Plus的高級(jí)特性和最佳實(shí)踐2024-11-11Springboot集成mybatis與jsp過(guò)程詳解
這篇文章主要介紹了Springboot集成mybatis與jsp過(guò)程,Spring Boot是一種全新的框架(相對(duì)而言),是用來(lái)簡(jiǎn)化Spring應(yīng)用的初始搭建以及開發(fā)過(guò)程。該框架使用了特定的方式來(lái)進(jìn)行配置2021-09-09Java中的NoSuchMethodException異常原因以及解決方案詳解
這篇文章主要介紹了Java中的NoSuchMethodException異常原因以及解決方案詳解,NoSuchMethodException是Java反射機(jī)制中的異常,在嘗試通過(guò)反射獲取方法時(shí),找不到指定的方法,通常發(fā)生在調(diào)用?Class?對(duì)象的方法時(shí),當(dāng)方法名或方法參數(shù)不匹配時(shí)拋出該異常,需要的朋友可以參考下2024-02-02關(guān)于SpringBoot靜態(tài)資源路徑管理問(wèn)題
這篇文章主要介紹了SpringBoot靜態(tài)資源路徑管理,主要包括默認(rèn)靜態(tài)資源路徑,增加靜態(tài)資源路徑前綴的相關(guān)操作,本文給大家介紹的非常詳細(xì),需要的朋友可以參考下2022-05-05SpringMVC文件上傳原理及實(shí)現(xiàn)過(guò)程解析
這篇文章主要介紹了SpringMVC文件上傳原理及實(shí)現(xiàn)過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-07-07