SpringBoot 如何讀取pom.xml中的值
如何讀取pom.xml中的值
首先,Java代碼中是無法直接讀取pom.xml中的內(nèi)容的,需要先把值轉(zhuǎn)到xxx.properties中,再通過程序讀取xxx.properties中對應(yīng)的值。
xxx.properties讀取pom.xml
1.xxx.properties中
以pom.xml中的version標(biāo)簽為例。@xx@代表讀取pom.xml中的值
這里為什么是用@呢:
由于${}方式會被maven處理。如果你pom繼承了spring-boot-starter-parent,Spring Boot已經(jīng)將maven-resources-plugins默認(rèn)的${}方式改為了@@方式,如@name@
2.pom.xml中
在rescource加入
<resource> <directory>src/main/resources</directory> <includes> <include>**.*</include> <include>**/**.*</include> </includes> <filtering>true</filtering> </resource>
比如證書文件,不做任何處理的話會拋出異常加入這個標(biāo)簽會后,*.xml、*.properties正常,其他文件的內(nèi)容可能會發(fā)生改變。
DerInputStream.getLength(): lengthTag=111, too big
解決方案是把把不需要過濾的文件單獨(dú)列出來,從maven-resources-plugin插件中排除
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-resources-plugin</artifactId> <configuration> <encoding>UTF-8</encoding> <!-- 過濾后綴為pem、pfx的證書文件 --> <nonFilteredFileExtensions> <nonFilteredFileExtension>pem</nonFilteredFileExtension> <nonFilteredFileExtension>pfx</nonFilteredFileExtension> <nonFilteredFileExtension>p12</nonFilteredFileExtension> <nonFilteredFileExtension>eot</nonFilteredFileExtension> <nonFilteredFileExtension>svg</nonFilteredFileExtension> <nonFilteredFileExtension>ttf</nonFilteredFileExtension> <nonFilteredFileExtension>woff</nonFilteredFileExtension> <nonFilteredFileExtension>css</nonFilteredFileExtension> <nonFilteredFileExtension>js</nonFilteredFileExtension> <nonFilteredFileExtension>html</nonFilteredFileExtension> <nonFilteredFileExtension>ico</nonFilteredFileExtension> </nonFilteredFileExtensions> </configuration> </plugin>
讀取xxx.properties文件
這個就比較常規(guī)了
<modelVersion>4.0.0</modelVersion> <groupId>com.didispace</groupId> <artifactId>Chapter4-2-2</artifactId> <version>1.0.0</version> <packaging>jar</packaging>
@Value("${project.version}") private String version;
SpringBoot讀取pom配置報錯
創(chuàng)建父子maven工程時,maven配置文件pom.xml報錯;
我的父工程存在多種環(huán)境配置,使用${xxx}占位符方式進(jìn)行引入配置文件版本管理;創(chuàng)建maven子工程時報錯,如圖報錯提示:
報錯原因
由于方式會被maven處理。如果你pom繼承了spring−boot−starter−parent,SpringBoot已經(jīng)將maven−resources−plugins默認(rèn)的‘{}方式會被maven處理。如果你pom繼承了spring-boot-starter-parent, Spring Boot已經(jīng)將maven-resources-plugins默認(rèn)的`方式會被maven處理。如果你pom繼承了spring−boot−starter−parent,SpringBoot已經(jīng)將maven−resources−plugins默認(rèn)的‘{xxx}`方式改為了@@方式,如@name@,所以會出現(xiàn)上述報錯情況;
解決方法
如果還想繼續(xù)使用${xxx}占位符方式,只需要在父工程pom.xml文件中加上下面配置即可:
<pluginManagement> <plugins> <plugin> <artifactId>maven-resources-plugin</artifactId> <configuration> <encoding>utf-8</encoding> <useDefaultDelimiters>true</useDefaultDelimiters> </configuration> </plugin> </plugins> </pluginManagement>
如圖所示:
更新maven工程,報錯問題解決
以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java 常用類解析:java異常機(jī)制,異常棧,異常處理方式,異常鏈,異常丟失詳解
這篇文章主要介紹了Java 常用類解析:java異常機(jī)制,異常棧,異常處理方式,異常鏈,異常丟失詳解的相關(guān)資料,需要的朋友可以參考下2017-03-03Opencv創(chuàng)建車牌圖片識別系統(tǒng)方法詳解
本文主要介紹了一個基于spring?boot+maven+opencv實(shí)現(xiàn)的圖像識別及訓(xùn)練項(xiàng)目,可以實(shí)現(xiàn)車牌識別功能,感興趣的可以跟隨小編一起試一試2022-01-01Spring Cloud Feign文件傳輸?shù)氖纠a
微服務(wù)中通常使用 Feign 作為服務(wù)消費(fèi)者,那么如何使用 Feign 接口傳輸文件呢?這篇文章主要介紹了Spring Cloud Feign文件傳輸?shù)氖纠a,感興趣的小伙伴們可以參考一下2018-06-06走進(jìn)SpringBoot之配置文件與多環(huán)境詳解
這篇文章主要介紹了走進(jìn)SpringBoot之配置文件與多環(huán)境,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-05-05java后端實(shí)現(xiàn)信息分頁查詢的示例代碼
在一個頁面展示大量的用戶信息不便于觀看,因此就需要采用分頁展示的方法,本文就來為大家介紹一下java后端如何實(shí)現(xiàn)信息分頁查詢,需要的小伙伴可以參考下2023-11-11IDEA與模擬器安裝調(diào)試失敗的處理方法:INSTALL_PARSE_FAILED_NO_CERTIFICATES
這篇文章主要介紹了IDEA與模擬器安裝調(diào)試失敗的處理方法:INSTALL_PARSE_FAILED_NO_CERTIFICATES,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-09-09SpringMVC通過RESTful結(jié)構(gòu)實(shí)現(xiàn)頁面數(shù)據(jù)交互
RESTFUL是一種網(wǎng)絡(luò)應(yīng)用程序的設(shè)計風(fēng)格和開發(fā)方式,基于HTTP,可以使用XML格式定義或JSON格式定義。RESTFUL適用于移動互聯(lián)網(wǎng)廠商作為業(yè)務(wù)接口的場景,實(shí)現(xiàn)第三方OTT調(diào)用移動網(wǎng)絡(luò)資源的功能,動作類型為新增、變更、刪除所調(diào)用資源2022-08-08用Java產(chǎn)生100個1-150間不重復(fù)數(shù)字
這篇文章主要介紹了用Java產(chǎn)生100個1-150間不重復(fù)數(shù)字,需要的朋友可以參考下2017-02-02