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

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

2.檢查沒有生效的根本原因
2.1 xxx.class文件是否編譯,可以通過文件修改時(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 />
<!--被編譯過的應(yīng)用程序class文件存放的目錄。 -->
<outputDirectory />
<!--被編譯過的測(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的文件沒有更新。
如果執(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, 如果是通過Refactor -> Rename操作,會(huì)自動(dòng)修改)。
至此,需要手動(dòng)clean install的問題終于解決了。
note: 不要問為什么會(huì)有這樣的項(xiàng)目結(jié)構(gòu),問就是歷史遺留問題。
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- IntelliJ?IDEA教程之clean或者install?Maven項(xiàng)目的操作方法
- Idea安裝Eslint插件提示:Plugin NativeScript was not installed的問題
- 解決IDEA maven 項(xiàng)目修改代碼不生效,mvn clean、install后才生效
- idea install 時(shí)提示jdk的某個(gè)jar包的包不存在的問題
- IDEA與模擬器安裝調(diào)試失敗的處理方法:INSTALL_PARSE_FAILED_NO_CERTIFICATES
- Idea跑的項(xiàng)目沒問題將程序install成jar包運(yùn)行報(bào)錯(cuò)空指針的問題
相關(guān)文章
Spark?Streaming?內(nèi)部運(yùn)行機(jī)制示例詳解
這篇文章主要介紹了Spark?Streaming?內(nèi)部運(yùn)行機(jī)制示例詳解,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2025-05-05
org.springframework.web.client.ResourceAccessException資源訪問錯(cuò)誤
本文主要介紹了org.springframework.web.client.ResourceAccessException資源訪問錯(cuò)誤的解決方法,首先需要分析異常的詳細(xì)信息,以確定具體的錯(cuò)誤原因,感興趣的可以了解一下2024-05-05
java調(diào)用chrome瀏覽器顯示指定網(wǎng)頁的完整指南
Selenium是一個(gè)強(qiáng)大的工具,它允許開發(fā)者編寫測(cè)試腳本以模擬用戶與Web應(yīng)用程序的交互,本文將詳細(xì)介紹如何使用Selenium?WebDriver結(jié)合ChromeDriver來啟動(dòng)Chrome瀏覽器并加載指定的網(wǎng)頁,需要的可以了解下2025-10-10
SpringBoot條件注解核心作用與使用場(chǎng)景詳解
Spring?Boot的條件注解為開發(fā)者提供了強(qiáng)大的動(dòng)態(tài)配置能力,理解其原理和適用場(chǎng)景是構(gòu)建靈活、可擴(kuò)展應(yīng)用的關(guān)鍵,本文將系統(tǒng)梳理所有常用的條件注解,結(jié)合代碼示例說明其作用與使用場(chǎng)景,感興趣的朋友一起看看吧2025-04-04
Spring 實(shí)現(xiàn)數(shù)據(jù)庫讀寫分離的示例
現(xiàn)在大型的電子商務(wù)系統(tǒng),在數(shù)據(jù)庫層面大都采用讀寫分離技術(shù),我們通常的做法就是把查詢從主庫中抽取出來,采用多個(gè)從庫,使用負(fù)載均衡,減輕每個(gè)從庫的查詢壓力。2017-01-01

