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