intelij IDEA和maven結合的好處

你是否正在學習Maven?是否由於Maven難用而又不得不用而苦惱?是否對Eclipse於Maven的衝突而困惑? 那麼我告訴你一個更直接更簡單的解決方案: IntelliJ IDEA!html

1. 什麼是 Maven,爲何要使用 Maven 而不是 Antjava

Maven簡單來講是一個項目管理工具,被認爲是Ant的替代品或者繼任者。事實上Maven的功能要遠遠超出Ant,它不只僅提供編譯的腳本,更是在整 個項目週期中提供測試,發佈,文檔生成等功能,而且有着獨特的依賴性管理方法。可是強大的功能的代價就是複雜的使用方法,第一次使用Maven每每須要將 近半個小時的時間(國內網速)來下載一個本地的依賴庫,這無疑會使不少開發人員「知難而退」。雖然廣受詬病,一個不爭的事實就是Maven逐漸代替了 Ant,使用Maven也成了Java開發人員的一個必要技能。web

2. IntelliJ IDEA 與 Eclipsespring

在Java的世界裏,Eclipse毋庸置疑是IDE中的王者,IntelliJ IDEA和NetBeans都只能生活在Eclipse的光環下。Eclipse的強大已經不用我多說了,但其實IntelliJ IDEA也是一個至關優秀的IDE,尤爲體如今它的智能上。它的一個針對.Net的Clone產品ReSharper已經被愈來愈多的C#開發者所接受。 IntelliJ IDEA提供了大量的智能規則來協助開發者,相似代碼補全,用法的轉換,格式的提示等等,當你習慣之後,你就會對那個小燈泡愛不釋手。apache

3. 選擇 Maven + IntelliJ IDEA 的理由eclipse

之因此要選擇IntelliJ IDEA,是由於Maven+Eclipse實在太難用了。Eclipse有兩個Maven插件 m2eclipse 和 Eclipse IAM。可是因爲Eclipse和Maven設計上的矛盾,這兩個插件可能都達不到你想要的效果。m2eclipse 會把你全部類型的項目都視爲Maven類型項目,這對於一個單純的Java項目或許能夠,對於一個JEE或者WEB項目都是一場災難。Eclipse IAM 並不會改變你的項目類型,可是他提供的功能也就僅僅限於編輯和運行POM文件了,甚至連依賴性都管理不了。相比之下,若是你非要用Eclipse的話我還 是推薦你使用Eclipse IAM。Eclipse想要完美的支持Maven恐怕須要在底層設計上作一些改變,不管是代碼規範,項目結構規範和依賴性管理上,都有着不可調和的矛盾。 顯然,在這方面IntelliJ IDEA作的要好的多,以致於你很難說出對它的不滿。maven

4. Maven + IntelliJ IDEA 的優點工具

一切都是Module:性能

      IntelliJ IDEA借鑑的Maven的概念,不在採起Eclipse裏Project的概念,一切都是Module。不管是否使用Maven,你的項目都是一個獨立 的Module。而且你能夠混搭使用Maven Module和普通的Java Module,二者能夠和諧共存。學習

支持Multi-module:

      能夠說Maven的項目結構設計是很是嚴格的,現實應用中你必須用到Parent-Child的模式。Eclipse因爲不支持在一個Project上建 立Sub-Project,所以不管如何目前都不能實現。IntelliJ IDEA能夠完美的實現這個設計,而且不管是Module屬性裏,仍是彼此的依賴性上都不會出現問題。

更方便的生命週期操做:

      比起Eclipse統統放進右鍵菜單的行爲,IntelliJ IDEA有着單獨的窗口能夠完成Maven的操做。你能夠針對不一樣Module進行 Clean Compile Package Install等操做,各個Plug-in的操做也一清二楚。

完美的依賴性管理:

      因爲Maven會把全部依賴的包放在本機的一個目錄下,因此其實是脫離Project自己存在的。IntelliJ IDEA引入了一個External Library的概念,全部的Maven依賴性都會放在這裏,和項目自帶的庫區分開。而且Module之間會智能的判斷,你不須要Maven Install來進行引用代碼的更新。

動態更新:

      每當Maven相關的設置更改時,例如修改了pom的依賴性,添加刪除Module,IntelliJ IDEA會提示你進行更新。這種更新實際上就是運行了Maven,因此你不準要手動運行Maven Compile來進行更新,也不會像Eclipse裏遇到莫名其妙的問題。

5. Maven 安裝

到http://maven.apache.org/download.html 下載最新的Maven版本,我下載的版本爲最新的apache-maven-3.0.4。推薦使用最新的Maven 3,由於比之前的Maven 2性能更好,並且徹底兼容Maven 2。

下載好之後,解壓到一個目錄,個人目錄爲 D:\apache-maven-3.0.4,接着配置Maven環境變量M2_HOME爲你解壓的目錄,以下圖新建M2_HOME變量並追加到Path後面:

Maven 與 IntelliJ IDEA 的完美結合Maven 與 IntelliJ IDEA 的完美結合

若是要在CMD控制檯運行Maven命令的話,還須要配置Jdk環境變量,由於我接下來的操做都是基於IntelliJ IDEA,因此就不用配置JDK環境變量。

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

打開IntelliJ IDEA,新建一個Maven項目,以下圖,項目名稱爲mymaven

Maven 與 IntelliJ IDEA 的完美結合 

選擇Maven模版

Maven 與 IntelliJ IDEA 的完美結合

建立過程當中,配置Maven主目錄

Maven 與 IntelliJ IDEA 的完美結合 

Maven 與 IntelliJ IDEA 的完美結合

建立好後的目錄結構以下圖,IDEA建立了src/main/resources(自動建立)、src/main/java(手動建立)、src/main/test(手動建立)、以及pom.xml文件(自動建立)

Maven 與 IntelliJ IDEA 的完美結合

按照Maven約定,項目的主目錄位於src/main/resources、src/main/java中,測試目錄位於src/main/test 中,因此咱們在最終打包項目的時候,只包含主目錄代碼,不會包含測試目錄裏的代碼,而測試目錄裏的代碼只會在測試時候用到。

最後pom.xml這個文件是咱們Maven項目的核心文件,POM(Project Object Model,項目對象模型)定義了項目的基本信息,用於描述項目如何構建,聲明項目依賴。

Maven 與 IntelliJ IDEA 的完美結合

project:是xml文件的根元素,咱們主要關心根元素下的子元素 
modelVersion:定義了當前POM模型的版本,Maven 2 或Maven 3 只能是4.0.0 
groupId:定義了項目屬於哪一個組,通常來講這個網網和公司或組織關聯,好比說,你所在的公司爲mycom.那就應該定義爲com.mycom.mymaven,mymaven爲項目名稱 
artifactId:定 義了當前Maven項目在組中的惟一id,例如HelloMaven這個項目,我則把他定義爲hello-maven,還例如spring項目,他的 groupId爲org.springframework,對於content項目來講artifactId則爲spring-content,web項 目則爲spring-web

最後咱們使用IntelliJ IDEA來用Maven編譯咱們的代碼,打開Maven Projects菜單,如圖,選中clean、compile並右鍵點擊Run 'hello-maven[clean,compile]'按鈕便可。

Maven 與 IntelliJ IDEA 的完美結合

Maven 與 IntelliJ IDEA 的完美結合

Maven 與 IntelliJ IDEA 的完美結合

根據輸出結果咱們看到,clean命令讓Maven先清理target目錄,Maven通常認爲項目的輸出目錄爲target,而後執行resource任務,如今爲定義項目資源,因此暫時略過,最後執行編譯任務!

相關文章
相關標籤/搜索