Delegate IDE build/run actions to maven 配置會影響程序運行嗎?
背景
IDEA 的 build/run 動作如果委托給了 maven 之后,會影響程序運行嗎?
本文來介紹一下這個問題。答案是,可能會,如果 pom.xml 中配置的 build 有額外的執(zhí)行動作,就會影響程序運行,甚至?xí)?dǎo)致運行失敗。
看個配置

上周研究項目打包時,根據(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í)行過,依賴的前端模塊都沒有安裝。
當(dāng) IDEA 的 build/run 動作被委托給 maven 后,就會由 maven 執(zhí)行 pom.xml 中的打包配置,最終在執(zhí)行 npm install VueProject 的時候,解決依賴失敗,導(dǎo)致 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)文章
詳解使用spring cloud config來統(tǒng)一管理配置文件
這篇文章主要介紹了詳解使用spring cloud config來統(tǒng)一管理配置文件,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-12-12
SSH框架網(wǎng)上商城項目第28戰(zhàn)之使用Ajax技術(shù)局部更新商品數(shù)量和總價
這篇文章主要為大家詳細介紹了SSH框架網(wǎng)上商城項目第28戰(zhàn)之使用Ajax技術(shù)局部更新商品數(shù)量和總價,感興趣的小伙伴們可以參考一下2016-06-06
使用Maven創(chuàng)建和管理多模塊項目的詳細步驟
使用Maven進行多模塊項目管理是一種常見的做法,它可以幫助你組織大型項目,使其結(jié)構(gòu)更加清晰,便于維護和構(gòu)建,以下是使用Maven創(chuàng)建和管理多模塊項目的詳細步驟,需要的朋友可以參考下2024-10-10

