Delegate IDE build/run actions to maven 配置會影響程序運行嗎?
背景
IDEA 的 build/run 動作如果委托給了 maven 之后,會影響程序運行嗎?
本文來介紹一下這個問題。答案是,可能會,如果 pom.xml 中配置的 build 有額外的執(zhí)行動作,就會影響程序運行,甚至會導致運行失敗。
看個配置
上周研究項目打包時,根據(jù)網(wǎng)上一個說明將此選項勾選了,結(jié)果今天直接運行 SpringBoot 項目的 main 類時,竟然先執(zhí)行了 maven install 命令。由于是一個我從來沒有 install 過 Vue 項目的工程的后端模塊,平時很快就能啟動的項目,今天死活跑不起來。
異常顯示是自動打包 vue 項目的插件執(zhí)行失敗了,定位問題可能出在 maven install 操作上,為什么會執(zhí)行 maven build 呢,理論上只需要 compile 項目就可以了呀。
聯(lián)想到上周和本周 IDEA 的配置差異,去掉此勾選項后,不再執(zhí)行 maven build 操作了,項目正常跑起來了。
后續(xù)
2020 年 8 月 18 日,又看了另一個模塊,在取消勾選 “Delegate IDE build/run actions to maven” 配置后,它雖然是 SpringBoot 項目,但是沒法運行,編譯報錯還是 common 中的類文件找不到。
對比了它的 pom.xml 和其他模塊的,發(fā)現(xiàn)它配置了 maven 編譯操作:
此項目需要勾上Delegate IDE build/run actions to maven 配置,才能執(zhí)行 main 方法。去掉這段 build 配置,取消勾選,還是無法執(zhí)行主類。這是為何呢?maven 項目的編譯插件和 IDE 的關(guān)系是怎樣的?這是個可以繼續(xù)研究的話題。
啟示錄
我們的項目使用 SpringBoot 做后端,Vue 做前端, web 端項目會配置一個 exec-maven-plugin 插件執(zhí)行 npm install 命令,將 Vue 項目打包到 web 的 static 目錄下。但是這個 Vue 項目平時沒有執(zhí)行過,依賴的前端模塊都沒有安裝。
當 IDEA 的 build/run 動作被委托給 maven 后,就會由 maven 執(zhí)行 pom.xml 中的打包配置,最終在執(zhí)行 npm install VueProject 的時候,解決依賴失敗,導致 SpringBoot 的項目的主函數(shù)啟動失敗了。
總結(jié)
到此這篇關(guān)于Delegate IDE build/run actions to maven 配置會影響程序運行嗎?的文章就介紹到這了,更多相關(guān)Delegate IDE build/run actions to maven 配置內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
基于JPA實體類監(jiān)聽器@EntityListeners注解的使用實例
這篇文章主要介紹了JPA實體類監(jiān)聽器@EntityListeners注解的使用實例,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-08-08java string 轉(zhuǎn)date方法如何實現(xiàn)
在開發(fā)應(yīng)用中經(jīng)常會使用到j(luò)ava string 轉(zhuǎn)date這種不是很常見的做法,本文將以此問題提供詳細解決方案,需要了解的朋友可以參考下2012-11-11