IDEA中Maven的一些常用操作指南
背景
當(dāng)我們使用 IDEA 開發(fā)基于 Maven 的項目的時候,會發(fā)現(xiàn)右側(cè)有一個 Maven,點開會有一些菜單,今天來介紹一下這些菜單的意思。
1、Reload All Maven Projects:
場景: 當(dāng)你對項目的pom.xml文件進(jìn)行了更改,比如添加、刪除或修改了依賴,或者進(jìn)行了其他Maven配置的更改時,可能需要重新加載項目以應(yīng)用這些變更。
用途: 使用這個功能可以重新導(dǎo)入和解析Maven項目,確保項目的配置和依賴被正確加載。這對于確保項目與pom.xml文件的同步非常重要。
2、Generate Sources and Update Folders For All Projects:
- 場景: 當(dāng)項目中有生成的源代碼(如通過Annotation Processors生成的代碼)或者在IDE中進(jìn)行了一些更改需要同步到實際文件系統(tǒng)時,可以使用這個功能。
- 用途: 生成源代碼并更新文件夾是為了確保在IDE中進(jìn)行的任何更改都被同步到實際的源代碼文件中。這對于確保構(gòu)建過程中包含最新的生成代碼非常重要。
舉例說明:
當(dāng)使用Annotation Processors或其他自動生成代碼的工具時,可能會生成一些額外的源代碼,并且這些生成的代碼不直接存儲在源代碼目錄中,而是在編譯過程中生成到特定的目錄中。
舉個例子,假設(shè)你使用了Lombok庫,它是一個Java庫,可以通過注解來簡化Java代碼的編寫。Lombok在編譯時會生成一些getter和setter方法,以及其他一些常見的方法。這些生成的代碼默認(rèn)情況下會放在編譯輸出目錄(例如target/classes)的某個位置。
如果你在IDE中使用Lombok,并在代碼中使用了Lombok的注解,但在實際源代碼中看不到生成的方法,那么可能是因為IDE沒有同步生成的代碼到源代碼目錄。
在這種情況下,你可以使用"Generate Sources and Update Folders For All Projects"功能來強(qiáng)制IDE將生成的代碼同步到源代碼目錄。這樣,你就可以在IDE中看到并編輯由Lombok生成的代碼,從而更容易理解和調(diào)試你的代碼。
總體而言,這個功能通常在你使用一些自動生成代碼的工具,并且想要在IDE中看到或編輯這些生成的代碼時非常有用。
生成的源代碼(比如通過Annotation Processors或Lombok生成的代碼)可能會存儲在編譯輸出目錄(例如,target/generated-sources)的子目錄中。這些生成的源代碼不會直接放在源代碼目錄中。
因此,在使用"Generate Sources and Update Folders For All Projects"功能時,它會負(fù)責(zé)將這些生成的源代碼同步到源代碼目錄,使得在IDE中可以看到并編輯這些生成的代碼。這樣,你就能夠在IDE中更方便地查看和管理由工具生成的代碼,而不必直接查看編譯輸出目錄。
3、Download Sources and/or Documentation:
- 場景: 當(dāng)你依賴的庫(JAR文件)沒有包含源代碼或文檔,并且你希望在IDE中查看這些源代碼或文檔時,可以使用這個功能。
- 用途: 下載源代碼和/或文檔是為了在IDE中查看和調(diào)試庫的源代碼,或者閱讀其文檔。這對于理解庫的內(nèi)部實現(xiàn)或使用庫的最佳實踐非常有幫助。
4、Add Maven Projects
添加 Maven 項目,點擊后選擇文件夾
5、Run Maven Build
執(zhí)行選中的命令
當(dāng)然你也可以雙擊命令直接執(zhí)行
6、Execute Maven Goal
執(zhí)行 mvn 命令或自定義的命令,點擊后有如下效果
7、Toggle Offline Mode
切換離線模式,即關(guān)閉和遠(yuǎn)程倉庫的鏈接,即版本管理工具不能提交到遠(yuǎn)程
8、Toggle ‘Skip Tests’ Mode
跳過 maven 生命周期的測試環(huán)節(jié)
9、Collapse All
收起下面展開的樹形
10、Analyze Dependencies…
11、Show Diagram…
12、Settings…
13、Profiles
Native Maven插件是一個用于構(gòu)建本地(native)項目的Maven插件,通常用于構(gòu)建使用C、C++等語言編寫的本地應(yīng)用程序。
native Profile:
- 當(dāng)激活了native Profile 時,可能會觸發(fā)使用 Native Maven 插件構(gòu)建本地(native)項目的配置。
- 這個Profile通常包括一些特定于本地構(gòu)建的配置,比如本地編譯器的設(shè)置、本地庫的依賴等。
nativeTest Profile:
- 當(dāng)激活了nativeTest Profile 時,可能會觸發(fā)一些與本地測試相關(guān)的配置。
- 這個Profile可能包括本地測試所需的特殊配置,確保測試可以正確地運行在本地構(gòu)建的環(huán)境中。
一般用不到
14、Lifecycle
這個一個生命周期,比如執(zhí)行 mvn test
會執(zhí)行 mvn compile
,執(zhí)行 mvn package
會執(zhí)行 mvn compile
和 mvn test
clean 階段:
- 目的: 清理項目,刪除之前構(gòu)建生成的文件。
- 命令:
mvn clean
validate 階段:
- 目的: 驗證項目是否正確且所有必要的信息可用。
- 命令:
mvn validate
compile 階段:
- 目的: 編譯項目的源代碼。
- 命令:
mvn compile
test 階段:
- 目的: 運行項目的單元測試。
- 命令:
mvn test
package 階段:
- 目的: 將編譯后的代碼打包成可發(fā)布的格式,例如 JAR 或 WAR。
- 命令:
mvn package
install 階段:
- 目的: 將項目打包并安裝到本地 Maven 倉庫,使其可以被其他項目引用。
- 命令:
mvn install
deploy 階段:
- 目的: 將項目的構(gòu)建結(jié)果復(fù)制到遠(yuǎn)程 Maven 倉庫,以便其他開發(fā)者或項目可以訪問。
- 命令:
mvn deploy
15、Plugins
這里就是一個一個具體的插件命令了。
16、Dependencies
在IntelliJ IDEA中,External Libraries和Dependencies兩個部分都涉及到項目的依賴,但它們有一些區(qū)別。
簡而言之
External Libraries 關(guān)注項目運行時所使用的庫
而 Dependencies 關(guān)注項目構(gòu)建時所需的依賴項。
在 Maven 項目中,Dependencies 中的內(nèi)容通常會包含在 External Libraries 中
總結(jié)
最常用的是1和14,其他了解一下就行
到此這篇關(guān)于IDEA中Maven的一些常用操作的文章就介紹到這了,更多相關(guān)IDEA Maven常用操作內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
淺談Java編程之if-else的優(yōu)化技巧總結(jié)
說實話,其實我很討厭在代碼里大量使用if-else,一是因為該類代碼執(zhí)行方式屬于面向過程的,二嘛,則是會顯得代碼過于冗余.這篇筆記,主要記錄一些自己在工作實踐當(dāng)中針對if-else的優(yōu)化心得,將會不定期地長期更新,需要的朋友可以參考下2021-06-06如何解決java.util.zip.ZipFile解壓后被java占用問題
這篇文章主要介紹了如何解決java.util.zip.ZipFile解壓后被java占用問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-06-06SpringBoot MainApplication類文件的位置詳解
這篇文章主要介紹了SpringBoot MainApplication類文件的位置詳解,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-01-01Springboot詳解實現(xiàn)食品倉庫管理系統(tǒng)流程
這是一個使用Springboot開發(fā)的食品倉庫管理系統(tǒng),是為商家提供商品貨物進(jìn)銷存的信息化管理系統(tǒng),具有一個倉庫管理系統(tǒng)該有的所有功能,感興趣的朋友快來看看吧2022-06-06spring boot整合quartz實現(xiàn)多個定時任務(wù)的方法
這篇文章主要介紹了spring boot整合quartz實現(xiàn)多個定時任務(wù)的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-01-01Java面試重點中的重點之Elasticsearch核心原理
ElasticSearch是一個基于Lucene的搜索引擎,是用Java語言開發(fā)的,能夠達(dá)到實時搜索,穩(wěn)定,可靠,快速,安裝使用方便,作為Apache許可條款下的開放源碼發(fā)布,是一種流行的企業(yè)級搜索引擎,是最受歡迎的企業(yè)搜索引擎2022-01-01