日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

Maven与IDEA结合

發(fā)布時(shí)間:2024/4/17 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Maven与IDEA结合 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

轉(zhuǎn)自:https://blog.csdn.net/zzpzheng/article/details/49474671

1. 什么是 Maven,為什么要使用 Maven 而不是 Ant

Maven簡(jiǎn)單來說是一個(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)速)來下載一個(gè)本地的依賴庫(kù),這無疑會(huì)使很多開發(fā)人員“知難而退”。雖然廣受詬病,一個(gè)不爭(zhēng)的事實(shí)就是Maven逐漸代替了 Ant,使用Maven也成了Java開發(fā)人員的一個(gè)必要技能。

2. IntelliJ IDEA 與 Eclipse

在Java的世界里,Eclipse毋庸置疑是IDE中的王者,IntelliJ IDEA和NetBeans都只能生活在Eclipse的光環(huán)下。Eclipse的強(qiáng)大已經(jīng)不用我多說了,但其實(shí)IntelliJ IDEA也是一個(gè)相當(dāng)優(yōu)秀的IDE,尤其體現(xiàn)在它的智能上。它的一個(gè)針對(duì).Net的Clone產(chǎn)品ReSharper已經(jīng)被越來越多的C#開發(fā)者所接受。 IntelliJ IDEA提供了大量的智能規(guī)則來協(xié)助開發(fā)者,類似代碼補(bǔ)全,用法的轉(zhuǎn)換,格式的提示等等,當(dāng)你習(xí)慣以后,你就會(huì)對(duì)那個(gè)小燈泡愛不釋手。

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ì)上做一些改變,無論是代碼規(guī)范,項(xiàng)目結(jié)構(gòu)規(guī)范和依賴性管理上,都有著不可調(diào)和的矛盾。 顯然,在這方面IntelliJ IDEA做的要好的多,以至于你很難說出對(duì)它的不滿。

4. Maven + IntelliJ IDEA 的優(yōu)勢(shì)

一切都是Module:

????? IntelliJ IDEA借鑒的Maven的概念,不在采取Eclipse里Project的概念,一切都是Module。無論是否使用Maven,你的項(xiàng)目都是一個(gè)獨(dú)立 的Module。并且你可以混搭使用Maven Module和普通的Java Module,兩者可以和諧共存。

支持Multi-module:

????? 可以說Maven的項(xiàng)目結(jié)構(gòu)設(shè)計(jì)是非常嚴(yán)格的,現(xiàn)實(shí)應(yīng)用中你必須用到Parent-Child的模式。Eclipse由于不支持在一個(gè)Project上建 立Sub-Project,因此無論如何目前都不能實(shí)現(xiàn)。IntelliJ IDEA可以完美的實(shí)現(xiàn)這個(gè)設(shè)計(jì),并且無論是Module屬性里,還是彼此的依賴性上都不會(huì)出現(xià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ū)分開。并且Module之間會(huì)智能的判斷,你不需要Maven Install來進(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來進(jìn)行更新,也不會(huì)像Eclipse里遇到莫名其妙的問題。

5. Maven 安裝

到http://maven.apache.org/download.html 下載最新的Maven版本,我下載的版本為最新的apache-maven-3.0.4。推薦使用最新的Maven 3,因?yàn)楸纫郧暗腗aven 2性能更好,而且完全兼容Maven 2。

下載好以后,解壓到一個(gè)目錄,我的目錄為 D:\apache-maven-3.0.4,接著配置Maven環(huán)境變量M2_HOME為你解壓的目錄,如下圖新建M2_HOME變量并追加到Path后面:

如果要在CMD控制臺(tái)運(yùn)行Maven命令的話,還需要配置Jdk環(huán)境變量,因?yàn)槲医酉聛淼牟僮鞫际腔贗ntelliJ IDEA,所以就不用配置JDK環(huán)境變量。

6. Maven 與IntelliJ IDEA完美使用(基于IntelliJ IDEA 12)

打開IntelliJ IDEA,新建一個(gè)Maven項(xiàng)目,如下圖,項(xiàng)目名稱為mymaven

?

選擇Maven模版

創(chuàng)建過程中,配置Maven主目錄

?

創(chuàng)建好后的目錄結(jié)構(gòu)如下圖,IDEA創(chuàng)建了src/main/resources(自動(dòng)創(chuàng)建)、src/main/java(手動(dòng)創(chuàng)建)、src/main/test(手動(dòng)創(chuàng)建)、以及pom.xml文件(自動(dòng)創(chuàng)建)

按照Maven約定,項(xiàng)目的主目錄位于src/main/resources、src/main/java中,測(cè)試目錄位于src/main/test 中,所以我們?cè)谧罱K打包項(xiàng)目的時(shí)候,只包含主目錄代碼,不會(huì)包含測(cè)試目錄里的代碼,而測(cè)試目錄里的代碼只會(huì)在測(cè)試時(shí)候用到。

最后pom.xml這個(gè)文件是我們Maven項(xiàng)目的核心文件,POM(Project Object Model,項(xiàng)目對(duì)象模型)定義了項(xiàng)目的基本信息,用于描述項(xiàng)目如何構(gòu)建,聲明項(xiàng)目依賴。

project:是xml文件的根元素,我們主要關(guān)心根元素下的子元素?
modelVersion:定義了當(dāng)前POM模型的版本,Maven 2 或Maven 3 只能是4.0.0?
groupId:定義了項(xiàng)目屬于哪個(gè)組,一般來說這個(gè)網(wǎng)網(wǎng)和公司或組織關(guān)聯(lián),比如說,你所在的公司為mycom.那就應(yīng)該定義為com.mycom.mymaven,mymaven為項(xiàng)目名稱?
artifactId:定 義了當(dāng)前Maven項(xiàng)目在組中的唯一id,例如HelloMaven這個(gè)項(xiàng)目,我則把他定義為hello-maven,還例如spring項(xiàng)目,他的 groupId為org.springframework,對(duì)于content項(xiàng)目來說artifactId則為spring-content,web項(xiàng) 目則為spring-web

最后我們使用IntelliJ IDEA來用Maven編譯我們的代碼,打開Maven Projects菜單,如圖,選中clean、compile并右鍵點(diǎn)擊Run 'hello-maven[clean,compile]'按鈕即可。

根據(jù)輸出結(jié)果我們看到,clean命令讓Maven先清理target目錄,Maven一般認(rèn)為項(xiàng)目的輸出目錄為target,然后執(zhí)行resource任務(wù),現(xiàn)在為定義項(xiàng)目資源,所以暫時(shí)略過,最后執(zhí)行編譯任務(wù)!?

轉(zhuǎn)載于:https://www.cnblogs.com/sharpest/p/8491991.html

總結(jié)

以上是生活随笔為你收集整理的Maven与IDEA结合的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。