idea每次修改代碼都需要重新install的問(wèn)題
idea每次修改代碼都需要重新install
需要在設(shè)置中將maven的 每次更新快照 勾選上
記錄一個(gè)特殊場(chǎng)景下,修改代碼,idea需要mvn clean install問(wèn)題
修改java代碼,mvn clean install 才能生效的場(chǎng)景,在網(wǎng)上看到一些方法,但是都沒(méi)有生效。
eg: 刪除.idea, 刪除后重新導(dǎo)入。
每次修改代碼測(cè)試的時(shí)候都要手動(dòng) clean install才可以,比較麻煩。
1.跑代碼的時(shí)候,自動(dòng)運(yùn)行clean install
實(shí)現(xiàn)方式:
通過(guò)配置Before launch, 添加Run Maven Goal 命令來(lái)實(shí)現(xiàn)。
2.檢查沒(méi)有生效的根本原因
2.1 xxx.class文件是否編譯,可以通過(guò)文件修改時(shí)間確定,or 反編譯后檢查(拖到idea中即可)
2.2 針對(duì)2.1的情況做具體的分析。
現(xiàn)有項(xiàng)目maven pom.xml中 <build>
標(biāo)簽中配置了 <sourceDirectory>src/test/java</sourceDirectory>
,
<build> <!--該元素設(shè)置了項(xiàng)目源碼目錄,當(dāng)構(gòu)建項(xiàng)目的時(shí)候,構(gòu)建系統(tǒng)會(huì)編譯目錄里的源碼。該路徑是相對(duì)于pom.xml的相對(duì)路徑。 --> <sourceDirectory /> <!--該元素設(shè)置了項(xiàng)目腳本源碼目錄,該目錄和源碼目錄不同:絕大多數(shù)情況下,該目錄下的內(nèi)容 會(huì)被拷貝到輸出目錄(因?yàn)槟_本是被解釋的,而不是被編譯的)。 --> <scriptSourceDirectory /> <!--該元素設(shè)置了項(xiàng)目單元測(cè)試使用的源碼目錄,當(dāng)測(cè)試項(xiàng)目的時(shí)候,構(gòu)建系統(tǒng)會(huì)編譯目錄里的源碼。該路徑是相對(duì)于pom.xml的相對(duì)路徑。 --> <testSourceDirectory /> <!--被編譯過(guò)的應(yīng)用程序class文件存放的目錄。 --> <outputDirectory /> <!--被編譯過(guò)的測(cè)試class文件存放的目錄。 --> <testOutputDirectory /> ...... </build>
maven項(xiàng)目結(jié)構(gòu)如下
├─src └─test ├─java └─resources
通常我們的項(xiàng)目結(jié)構(gòu)是
由于實(shí)際項(xiàng)目中src 下中只有test 目錄,當(dāng)?shù)谝淮螌?dǎo)入idea后,結(jié)構(gòu)如下,對(duì)比上面的圖片會(huì)發(fā)現(xiàn)java字體顏色不一樣。
idea左側(cè)選中項(xiàng)目文件夾,右鍵選擇Mark Directory as, 可以看到有以下幾個(gè)選項(xiàng)
藍(lán)色是Sources Root, 綠色是Test Sources Root。
在執(zhí)行mvn install 時(shí),Sources Root下的code會(huì)編譯到target/classes下,Test Sources Root會(huì)編譯到target/test-classes下。
install 之后,當(dāng)run case的時(shí)候只編譯到了target/classes, target/test-classes的文件沒(méi)有更新。
如果執(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,同時(shí)移除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, 如果是通過(guò)Refactor -> Rename操作,會(huì)自動(dòng)修改)。
至此,需要手動(dòng)clean install的問(wèn)題終于解決了。
note: 不要問(wèn)為什么會(huì)有這樣的項(xiàng)目結(jié)構(gòu),問(wèn)就是歷史遺留問(wèn)題。
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- IntelliJ?IDEA教程之clean或者install?Maven項(xiàng)目的操作方法
- Idea安裝Eslint插件提示:Plugin NativeScript was not installed的問(wèn)題
- 解決IDEA maven 項(xiàng)目修改代碼不生效,mvn clean、install后才生效
- idea install 時(shí)提示jdk的某個(gè)jar包的包不存在的問(wèn)題
- IDEA與模擬器安裝調(diào)試失敗的處理方法:INSTALL_PARSE_FAILED_NO_CERTIFICATES
- Idea跑的項(xiàng)目沒(méi)問(wèn)題將程序install成jar包運(yùn)行報(bào)錯(cuò)空指針的問(wèn)題
相關(guān)文章
PowerJobAutoConfiguration自動(dòng)配置源碼流程解析
這篇文章主要為大家介紹了PowerJobAutoConfiguration自動(dòng)配置源碼流程解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-12-12MyBatis-Plus動(dòng)態(tài)返回實(shí)體類(lèi)示例詳解
這篇文章主要為大家介紹了MyBatis-Plus動(dòng)態(tài)返回實(shí)體類(lèi)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-07-07將InputStream轉(zhuǎn)化為base64的實(shí)例
這篇文章主要介紹了將InputStream轉(zhuǎn)化為base64的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-12-12SpringBoot中的響應(yīng)式web應(yīng)用詳解
這篇文章主要介紹了SpringBoot中的響應(yīng)式web應(yīng)用詳解,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-11-11Java容器ArrayList知識(shí)點(diǎn)總結(jié)
本篇文章給大家分享了Java容器ArrayList的相關(guān)知識(shí)點(diǎn),對(duì)此有需要的朋友可以跟著學(xué)習(xí)參考下。2018-05-05springcloud+nacos實(shí)現(xiàn)灰度發(fā)布示例詳解
這篇文章主要介紹了springcloud+nacos實(shí)現(xiàn)灰度發(fā)布,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-08-08JAVA基礎(chǔ)類(lèi)庫(kù)之String類(lèi),StringBuffer類(lèi)和StringBuilder類(lèi)
這篇文章主要介紹了Java中基礎(chǔ)類(lèi)庫(kù)的String類(lèi),StringBuffer類(lèi)和StringBuilder類(lèi),是Java入門(mén)學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下2021-09-09