idea每次修改代碼都需要重新install的問題
idea每次修改代碼都需要重新install
需要在設(shè)置中將maven的 每次更新快照 勾選上

記錄一個特殊場景下,修改代碼,idea需要mvn clean install問題
修改java代碼,mvn clean install 才能生效的場景,在網(wǎng)上看到一些方法,但是都沒有生效。
eg: 刪除.idea, 刪除后重新導(dǎo)入。
每次修改代碼測試的時候都要手動 clean install才可以,比較麻煩。
1.跑代碼的時候,自動運行clean install
實現(xiàn)方式:
通過配置Before launch, 添加Run Maven Goal 命令來實現(xiàn)。

2.檢查沒有生效的根本原因
2.1 xxx.class文件是否編譯,可以通過文件修改時間確定,or 反編譯后檢查(拖到idea中即可)
2.2 針對2.1的情況做具體的分析。
現(xiàn)有項目maven pom.xml中 <build> 標(biāo)簽中配置了 <sourceDirectory>src/test/java</sourceDirectory> ,
<build>
<!--該元素設(shè)置了項目源碼目錄,當(dāng)構(gòu)建項目的時候,構(gòu)建系統(tǒng)會編譯目錄里的源碼。該路徑是相對于pom.xml的相對路徑。 -->
<sourceDirectory />
<!--該元素設(shè)置了項目腳本源碼目錄,該目錄和源碼目錄不同:絕大多數(shù)情況下,該目錄下的內(nèi)容 會被拷貝到輸出目錄(因為腳本是被解釋的,而不是被編譯的)。 -->
<scriptSourceDirectory />
<!--該元素設(shè)置了項目單元測試使用的源碼目錄,當(dāng)測試項目的時候,構(gòu)建系統(tǒng)會編譯目錄里的源碼。該路徑是相對于pom.xml的相對路徑。 -->
<testSourceDirectory />
<!--被編譯過的應(yīng)用程序class文件存放的目錄。 -->
<outputDirectory />
<!--被編譯過的測試class文件存放的目錄。 -->
<testOutputDirectory />
......
</build> maven項目結(jié)構(gòu)如下
├─src
└─test
├─java
└─resources通常我們的項目結(jié)構(gòu)是

由于實際項目中src 下中只有test 目錄,當(dāng)?shù)谝淮螌?dǎo)入idea后,結(jié)構(gòu)如下,對比上面的圖片會發(fā)現(xiàn)java字體顏色不一樣。

idea左側(cè)選中項目文件夾,右鍵選擇Mark Directory as, 可以看到有以下幾個選項

藍(lán)色是Sources Root, 綠色是Test Sources Root。
在執(zhí)行mvn install 時,Sources Root下的code會編譯到target/classes下,Test Sources Root會編譯到target/test-classes下。
install 之后,當(dāng)run case的時候只編譯到了target/classes, target/test-classes的文件沒有更新。
如果執(zhí)行mvn clean install, 則可以將code 編譯到target/classes, target/test-classes。
找到原因后,修改成正確的配置就可以了。
- Mark src/test/java Directory as Test Sources Root(下次,第一次導(dǎo)入idea需要相同的操作)
- or Mark src/test/java Directory as Test Sources Root,同時移除maven pom.xml中<build>標(biāo)簽下的<sourceDirectory>src/test/java</sourceDirectory>
- or rename src/test to src/main, 修改maven pom.xml中<build>標(biāo)簽下的<sourceDirectory>src/main/java</sourceDirectory>(src/test/java -> src/main/java, 如果是通過Refactor -> Rename操作,會自動修改)。
至此,需要手動clean install的問題終于解決了。
note: 不要問為什么會有這樣的項目結(jié)構(gòu),問就是歷史遺留問題。
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
PowerJobAutoConfiguration自動配置源碼流程解析
這篇文章主要為大家介紹了PowerJobAutoConfiguration自動配置源碼流程解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-12-12
將InputStream轉(zhuǎn)化為base64的實例
這篇文章主要介紹了將InputStream轉(zhuǎn)化為base64的實例,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-12-12
SpringBoot中的響應(yīng)式web應(yīng)用詳解
這篇文章主要介紹了SpringBoot中的響應(yīng)式web應(yīng)用詳解,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-11-11
springcloud+nacos實現(xiàn)灰度發(fā)布示例詳解
這篇文章主要介紹了springcloud+nacos實現(xiàn)灰度發(fā)布,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-08-08
JAVA基礎(chǔ)類庫之String類,StringBuffer類和StringBuilder類
這篇文章主要介紹了Java中基礎(chǔ)類庫的String類,StringBuffer類和StringBuilder類,是Java入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下2021-09-09

