springboot application無法使用$獲取pom變量的問題及解決
application無法使用$獲取pom變量問題
在maven的pom文件中進(jìn)行了多環(huán)境變量配置,引用了maven-resources-plugin,在application.properties文件中通過以下配置指定不同環(huán)境下的配置文件,
spring.profiles.active = ${profiles.active}
但是${profiles.active}無法從pom文件中獲取變量值替換。
由于${}方式會(huì)被maven處理。如果你pom繼承了spring-boot-starter-parent,Spring Boot已經(jīng)將maven-resources-plugins默認(rèn)的${}方式改為了@@方式,如@name@
如果還想繼續(xù)使用${}占位符方式
只需要在pom文件中加上下面配置即可:
<build> ? ? <pluginManagement> ? ? ? ? <plugins> ? ? ? ? ? ? <plugin> ? ? ? ? ? ? ? ? <artifactId>maven-resources-plugin</artifactId> ? ? ? ? ? ? ? ? <configuration> ? ? ? ? ? ? ? ? ? ? <encoding>utf-8</encoding> ? ? ? ? ? ? ? ? ? ? <useDefaultDelimiters>true</useDefaultDelimiters> ? ? ? ? ? ? ? ? </configuration> ? ? ? ? ? ? </plugin> ? ? ? ? </plugins> ? ? </pluginManagement> </build>
或者使用
<configuration> ? ? ? ? ? ? ? ? ? ? <delimiters> ? ? ? ? ? ? ? ? ? ? ? ? <delimiter>@</delimiter> ? ? ? ? ? ? ? ? ? ? </delimiters> ? ? ? ? ? ? ? ? ? ? <useDefaultDelimiters>false</useDefaultDelimiters> ? ? ? ? ? ? ? ? </configuration>
將<useDefaultDelimiters>false</useDefaultDelimiters>
改為<useDefaultDelimiters>true</useDefaultDelimiters>
application.yml無法使用@@讀取pom.xml中標(biāo)簽值
在application.yml中使用了@@讀取標(biāo)簽值,
報(bào)下面的錯(cuò)誤
Caused by: org.yaml.snakeyaml.scanner.ScannerException:
while scanning for the next token found character '@' that cannot start any token.
(Do not use @ for indentation) in 'reader', line 5, column 11:
name: @artifactId@
解決辦法
在模塊的pom.xml文件下引入一下配置
<build> ?? <!--如果不設(shè)置resource 會(huì)導(dǎo)致application.yml中的@@找不到pom文件中的配置--> ? ? ? ? <resources> ? ? ?? ? ? ? ? <resource> ? ? ? ? ? ? ? ? ? ? ? ? <directory>src/main/resources</directory> ? ? ? ? ? ? <filtering>true</filtering> ? ? ? ? ? ? ? ? </resource> ? ? ? ? </resources> </build>
然后重新啟動(dòng),即可成功。
application.yml無法使用@@讀取pom.xml中標(biāo)簽值
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Springboot啟動(dòng)后立即某個(gè)執(zhí)行方法的四種方式
spring項(xiàng)目如何在啟動(dòng)項(xiàng)目是執(zhí)行一些操作,在spring中能通過那些操作實(shí)現(xiàn)這個(gè)功能呢,下面這篇文章主要給大家介紹了關(guān)于Springboot啟動(dòng)后立即某個(gè)執(zhí)行方法的四種方式,需要的朋友可以參考下2022-06-06詳解springboot+atomikos+druid?數(shù)據(jù)庫連接失效分析
本文主要介紹了springboot+atomikos+druid?數(shù)據(jù)庫連接失效分析,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-02-02java8中parallelStream性能測試及結(jié)果分析
本篇文章給大家用代碼實(shí)例做了segmentfaultjava8中parallelStream性能測試,并對(duì)測試結(jié)果做了說明,需要的朋友學(xué)習(xí)下吧。2018-01-01Java 生成圖片驗(yàn)證碼3種方法(字母、加減乘除、中文)
這篇文章主要介紹了Java 生成圖片驗(yàn)證碼3種方法(字母、加減乘除、中文),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-01-01java子類調(diào)用父類的方法中包含子類重寫的實(shí)例方法
在本篇文章里小編給大家整理了關(guān)于java子類調(diào)用父類的方法中包含子類重寫的實(shí)例方法以及相關(guān)知識(shí)點(diǎn),需要的朋友們可以學(xué)習(xí)下。2019-09-09java 關(guān)鍵字static詳細(xì)介紹及如何使用
這篇文章主要介紹了java 關(guān)鍵字static詳細(xì)介紹及如何使用的相關(guān)資料,需要的朋友可以參考下2017-03-03