詳解使用IntelliJ IDEA 配置Maven(入門)
你是否正在學(xué)習(xí)Maven?是否因?yàn)镸aven難用而又不得不用而苦惱?是否對(duì)Eclipse于Maven的沖突而困惑? 那么我告訴你一個(gè)更直接更簡(jiǎn)單的解決方案: IntelliJ IDEA!
1. 什么是 Maven,為什么要使用 Maven 而不是 Ant
Maven簡(jiǎn)單來(lái)說(shuō)是一個(gè)項(xiàng)目管理工具,被認(rèn)為是Ant的替代品或者繼任者。事實(shí)上Maven的功能要遠(yuǎn)遠(yuǎn)超出Ant,它不僅僅提供編譯的腳本,更是在整 個(gè)項(xiàng)目周期中提供測(cè)試,發(fā)布,文檔生成等功能,并且有著獨(dú)特的依賴性管理方法。但是強(qiáng)大的功能的代價(jià)就是復(fù)雜的使用方法,第一次使用Maven往往需要將 近半個(gè)小時(shí)的時(shí)間(國(guó)內(nèi)網(wǎng)速)來(lái)下載一個(gè)本地的依賴庫(kù),這無(wú)疑會(huì)使很多開(kāi)發(fā)人員“知難而退”。雖然廣受詬病,一個(gè)不爭(zhēng)的事實(shí)就是Maven逐漸代替了 Ant,使用Maven也成了Java開(kāi)發(fā)人員的一個(gè)必要技能。
2. IntelliJ IDEA 與 Eclipse
在Java的世界里,Eclipse毋庸置疑是IDE中的王者,IntelliJ IDEA和NetBeans都只能生活在Eclipse的光環(huán)下。Eclipse的強(qiáng)大已經(jīng)不用我多說(shuō)了,但其實(shí)IntelliJ IDEA也是一個(gè)相當(dāng)優(yōu)秀的IDE,尤其體現(xiàn)在它的智能上。它的一個(gè)針對(duì).Net的Clone產(chǎn)品ReSharper已經(jīng)被越來(lái)越多的C#開(kāi)發(fā)者所接受。 IntelliJ IDEA提供了大量的智能規(guī)則來(lái)協(xié)助開(kāi)發(fā)者,類似代碼補(bǔ)全,用法的轉(zhuǎn)換,格式的提示等等,當(dāng)你習(xí)慣以后,你就會(huì)對(duì)那個(gè)小燈泡愛(ài)不釋手。
3. 選擇 Maven + IntelliJ IDEA 的理由
之所以要選擇IntelliJ IDEA,是因?yàn)镸aven+Eclipse實(shí)在太難用了。Eclipse有兩個(gè)Maven插件 m2eclipse 和 Eclipse IAM。但是由于Eclipse和Maven設(shè)計(jì)上的矛盾,這兩個(gè)插件可能都達(dá)不到你想要的效果。m2eclipse 會(huì)把你所有類型的項(xiàng)目都視為Maven類型項(xiàng)目,這對(duì)于一個(gè)單純的Java項(xiàng)目或許可以,對(duì)于一個(gè)JEE或者WEB項(xiàng)目都是一場(chǎng)災(zāi)難。Eclipse IAM 并不會(huì)改變你的項(xiàng)目類型,但是他提供的功能也就僅僅限于編輯和運(yùn)行POM文件了,甚至連依賴性都管理不了。相比之下,如果你非要用Eclipse的話我還 是推薦你使用Eclipse IAM。Eclipse想要完美的支持Maven恐怕需要在底層設(shè)計(jì)上做一些改變,無(wú)論是代碼規(guī)范,項(xiàng)目結(jié)構(gòu)規(guī)范和依賴性管理上,都有著不可調(diào)和的矛盾。 顯然,在這方面IntelliJ IDEA做的要好的多,以至于你很難說(shuō)出對(duì)它的不滿。
4. Maven + IntelliJ IDEA 的優(yōu)勢(shì)
一切都是Module:
IntelliJ IDEA借鑒的Maven的概念,不在采取Eclipse里Project的概念,一切都是Module。無(wú)論是否使用Maven,你的項(xiàng)目都是一個(gè)獨(dú)立 的Module。并且你可以混搭使用Maven Module和普通的Java Module,兩者可以和諧共存。
支持Multi-module:
可以說(shuō)Maven的項(xiàng)目結(jié)構(gòu)設(shè)計(jì)是非常嚴(yán)格的,現(xiàn)實(shí)應(yīng)用中你必須用到Parent-Child的模式。Eclipse由于不支持在一個(gè)Project上建 立Sub-Project,因此無(wú)論如何目前都不能實(shí)現(xiàn)。IntelliJ IDEA可以完美的實(shí)現(xiàn)這個(gè)設(shè)計(jì),并且無(wú)論是Module屬性里,還是彼此的依賴性上都不會(huì)出現(xiàn)問(wèn)題。
更方便的生命周期操作:
比起Eclipse通通放進(jìn)右鍵菜單的行為,IntelliJ IDEA有著單獨(dú)的窗口可以完成Maven的操作。你可以針對(duì)不同Module進(jìn)行 Clean Compile Package Install等操作,各個(gè)Plug-in的操作也一清二楚。
完美的依賴性管理:
由于Maven會(huì)把所有依賴的包放在本機(jī)的一個(gè)目錄下,所以實(shí)際上是脫離Project本身存在的。IntelliJ IDEA引入了一個(gè)External Library的概念,所有的Maven依賴性都會(huì)放在這里,和項(xiàng)目自帶的庫(kù)區(qū)分開(kāi)。并且Module之間會(huì)智能的判斷,你不需要Maven Install來(lái)進(jìn)行引用代碼的更新。
動(dòng)態(tài)更新:
每當(dāng)Maven相關(guān)的設(shè)置更改時(shí),例如修改了pom的依賴性,添加刪除Module,IntelliJ IDEA會(huì)提示你進(jìn)行更新。這種更新實(shí)際上就是運(yùn)行了Maven,所以你不許要手動(dòng)運(yùn)行Maven Compile來(lái)進(jìn)行更新,也不會(huì)像Eclipse里遇到莫名其妙的問(wèn)題。
使用IntelliJ IDEA 配置Maven
1. 下載Maven
官方地址:http://maven.apache.org/download.cgi

解壓并新建一個(gè)本地倉(cāng)庫(kù)文件夾

2.配置本地倉(cāng)庫(kù)路徑

3.配置maven環(huán)境變量

4.在IntelliJ IDEA中配置maven
打開(kāi)-File-Settings

5.新建maven WEB項(xiàng)目
打開(kāi)-File-New-Project
點(diǎn)擊NEXT
點(diǎn)擊NEXT
添加的配置為 archetypeCatalog=internal
點(diǎn)擊NEXT
點(diǎn)擊NEXT
點(diǎn)擊Finish后項(xiàng)目開(kāi)始創(chuàng)建
點(diǎn)擊右下角查看進(jìn)去

6.maven web模板項(xiàng)目結(jié)構(gòu)


同樣在main下新建test測(cè)試文件夾,再在此文件夾下新建java測(cè)試源碼文件夾和resource測(cè)試資源文件夾
也可以右鍵項(xiàng)目-選擇Open Module Settings打開(kāi)項(xiàng)目配置頁(yè)面更改

7.配置依賴jar包

jar包配置搜索
官方地址:http://mvnrepository.com/
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Springboot實(shí)現(xiàn)WebMvcConfigurer接口定制mvc配置詳解
這篇文章主要介紹了Springboot實(shí)現(xiàn)WebMvcConfigurer接口定制mvc配置詳解,spring?boot拋棄了傳統(tǒng)xml配置文件,通過(guò)配置類(標(biāo)注@Configuration的類,@Configuration配置類相當(dāng)于一個(gè)xml配置文件)以JavaBean形式進(jìn)行相關(guān)配置,需要的朋友可以參考下2023-09-09
使用Java實(shí)現(xiàn)MySQL數(shù)據(jù)鎖定的策略
在并發(fā)環(huán)境下,多個(gè)線程同時(shí)對(duì)MySQL數(shù)據(jù)庫(kù)進(jìn)行讀寫(xiě)操作可能會(huì)導(dǎo)致數(shù)據(jù)沖突和不一致的問(wèn)題,為了解決這些并發(fā)沖突,我們可以采用數(shù)據(jù)鎖定策略來(lái)保證數(shù)據(jù)的一致性和完整性,下面將介紹如何使用Java實(shí)現(xiàn)MySQL數(shù)據(jù)鎖定策略,,需要的朋友可以參考下2023-08-08
java實(shí)現(xiàn)二維數(shù)組轉(zhuǎn)置的方法示例
這篇文章主要介紹了java實(shí)現(xiàn)二維數(shù)組轉(zhuǎn)置的方法,結(jié)合實(shí)例形式詳細(xì)分析了java二維數(shù)組轉(zhuǎn)置的原理、實(shí)現(xiàn)步驟與相關(guān)操作技巧,需要的朋友可以參考下2017-10-10
對(duì)Java字符串與整形、浮點(diǎn)類型之間的相互轉(zhuǎn)換方法總結(jié)
今天小編就為大家分享一篇對(duì)Java字符串與整形、浮點(diǎn)類型之間的相互轉(zhuǎn)換方法總結(jié),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-07-07
Spring(AbstractRoutingDataSource)實(shí)現(xiàn)動(dòng)態(tài)數(shù)據(jù)源切換示例
本篇文章主要介紹了詳解Spring(AbstractRoutingDataSource)實(shí)現(xiàn)動(dòng)態(tài)數(shù)據(jù)源切換,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。2017-02-02
Spring Boot與前端配合與Idea配置部署操作過(guò)程
這篇文章主要介紹了Spring Boot與前端配合與Idea配置部署的操作過(guò)程,本文圖文并茂給大家介紹的非常詳細(xì),需要的朋友可以參考下2018-02-02
java獲取文件擴(kuò)展名的方法小結(jié)【正則與字符串截取】
這篇文章主要介紹了java獲取文件擴(kuò)展名的方法,結(jié)合實(shí)例形式分析了使用正則與字符串截取兩種獲取擴(kuò)展名的操作技巧,需要的朋友可以參考下2017-01-01
Spring Cloud下OAUTH2注銷的實(shí)現(xiàn)示例
本篇文章主要介紹了Spring Cloud下OAUTH2注銷的實(shí)現(xiàn)示例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-03-03
mybatis的insert語(yǔ)句插入數(shù)據(jù)時(shí)的返回值的實(shí)現(xiàn)
這篇文章主要介紹了mybatis的insert語(yǔ)句插入數(shù)據(jù)時(shí)的返回值的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-10-10

