問題描述
mvn clean install的時候報的如下異常:
緊接著又往下翻了一下日志還有一個這個錯誤
按正常來說通過@@
可以取pom當(dāng)中的properties標(biāo)簽的值呀。但是可以發(fā)現(xiàn)編譯過后的application當(dāng)中的值并沒有被替換。
解決過程
(1)我先是將server.port=@server.port@替換成了server.port=8082,然后clean install直接成功了,那也就證明就是這塊的問題導(dǎo)致的。
(2)既然知道問題原因了,然后我嘗試著不使用mvn clean install命令,通過idea工具當(dāng)中的構(gòu)建,竟然成功了。
而且打出來的jar包端口號也生效了
按正常來說idea當(dāng)中Lifecycle當(dāng)中構(gòu)建和我們直接執(zhí)行maven命令是沒有區(qū)別的,為什么他可以呢?
于是我突然想到了我在idea當(dāng)中設(shè)置了跳過測試,如下:
maven當(dāng)中有很多生命周期階段,其中test也是其中一個階段,也就是在執(zhí)行install的時候會經(jīng)過test階段,test階段綁定了surefire插件,這個插件會給我們系統(tǒng)做一些簡單的測試,例如系統(tǒng)可以運行,還有帶有@Test注解的方法是否能正常運行。
而我這里使用了@@變量取值,也就是在還沒有進(jìn)行值替換
的時候執(zhí)行了test階段,恰好是取的端口值,test階段在啟動項目的時候端口設(shè)置的不是數(shù)字直接就發(fā)生了異常,從而直接將構(gòu)建過程給終止掉了。
對maven生周期不了解的建議看一下這篇文章:https://blog.csdn.net/weixin_43888891/article/details/130756192文章來源:http://www.zghlxwxcb.cn/news/detail-470174.html
解決方案,命令當(dāng)中加上-DskipTests即可解決:mvn clean install -DskipTests
文章來源地址http://www.zghlxwxcb.cn/news/detail-470174.html
到了這里,關(guān)于java.lang.IllegalStateException: Failed to load ApplicationContext的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!