背景
IDEA 的 build/run 動作如果委托給了 maven 之后,會影響程序運(yùn)行嗎?
本文來介紹一下這個問題。答案是,可能會,如果 pom.xml 中配置的 build 有額外的執(zhí)行動作,就會影響程序運(yùn)行,甚至?xí)?dǎo)致運(yùn)行失敗。
看個配置
上周研究項(xiàng)目打包時,根據(jù)網(wǎng)上一個說明將此選項(xiàng)勾選了,結(jié)果今天直接運(yùn)行 SpringBoot 項(xiàng)目的 main 類時,竟然先執(zhí)行了 maven install 命令。由于是一個我從來沒有 install 過 Vue 項(xiàng)目的工程的后端模塊,平時很快就能啟動的項(xiàng)目,今天死活跑不起來。
異常顯示是自動打包 vue 項(xiàng)目的插件執(zhí)行失敗了,定位問題可能出在 maven install 操作上,為什么會執(zhí)行 maven build 呢,理論上只需要 compile 項(xiàng)目就可以了呀。
聯(lián)想到上周和本周 IDEA 的配置差異,去掉此勾選項(xiàng)后,不再執(zhí)行 maven build 操作了,項(xiàng)目正常跑起來了。
后續(xù)
2020 年 8 月 18 日,又看了另一個模塊,在取消勾選 “Delegate IDE build/run actions to maven” 配置后,它雖然是 SpringBoot 項(xiàng)目,但是沒法運(yùn)行,編譯報(bào)錯還是 common 中的類文件找不到。
對比了它的 pom.xml 和其他模塊的,發(fā)現(xiàn)它配置了 maven 編譯操作:
此項(xiàng)目需要勾上Delegate IDE build/run actions to maven 配置,才能執(zhí)行 main 方法。去掉這段 build 配置,取消勾選,還是無法執(zhí)行主類。這是為何呢?maven 項(xiàng)目的編譯插件和 IDE 的關(guān)系是怎樣的?這是個可以繼續(xù)研究的話題。
啟示錄
我們的項(xiàng)目使用 SpringBoot 做后端,Vue 做前端, web 端項(xiàng)目會配置一個 exec-maven-plugin 插件執(zhí)行 npm install 命令,將 Vue 項(xiàng)目打包到 web 的 static 目錄下。但是這個 Vue 項(xiàng)目平時沒有執(zhí)行過,依賴的前端模塊都沒有安裝。
當(dāng) IDEA 的 build/run 動作被委托給 maven 后,就會由 maven 執(zhí)行 pom.xml 中的打包配置,最終在執(zhí)行 npm install VueProject 的時候,解決依賴失敗,導(dǎo)致 SpringBoot 的項(xiàng)目的主函數(shù)啟動失敗了。
總結(jié)
到此這篇關(guān)于Delegate IDE build/run actions to maven 配置會影響程序運(yùn)行嗎?的文章就介紹到這了,更多相關(guān)Delegate IDE build/run actions to maven 配置內(nèi)容請搜索服務(wù)器之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持服務(wù)器之家!
原文鏈接:https://blog.csdn.net/wojiushiwo945you/article/details/108053337