mac系統下的Maven安裝配置及創建你的第一個Maven項目

title: mac系統下的Maven安裝配置及創建你的第一個Maven項目
tags: maven
categories: maven


若圖片無法顯示,請前往我的博客查看,相應文章鏈接:http://codingxiaxw.cn/2016/11/24/51-first-maven-project/

我是在學完SSM框架的整合與基本開發后接觸的Maven,它是一個項目管理的利器,網上也有說java后臺的項目管理肯定要用到maven的。為什么要用maven?在之前學習各個框架的時候,比如用Spring框架進行開發的時候要在項目中加入Spring的各個jar包及其依賴包;用MyBatis進行開發的時候要在項目中引入MyBatis的各個jar包。這樣是不是太過于繁瑣?而有了maven對項目進行管理,就簡單多了。為什么簡單多了?有了maven,這樣當我們的項目需要哪個jar包時就可以直接在maven為我們生成的pom.xml文件中添加相關jar包依賴就行,而不需要導入那么多的jar包(可以看看我的這篇文章,用用Maven+SSM框架寫一個秒殺系統教程,告訴你maven是如何進行項目管理的),而本篇文章只是教大家如何安裝Maven及如何快速入門創建一個Maven項目。

寫在前面的話:此篇文章教程是在IntelliJ IDEA中搭建的maven項目。(建議eclipse黨快點轉IDEA吧,IDEA大法好。逃...

1.maven的安裝

前往Apache Maven官網點擊apache-maven-3.3.9-bin.zip鏈接下載3.3.9的版本即可。下載后我將該目錄放到/Users/codingBoy/的目錄下,文件名為apache-maven-3.3.9。這樣我們便成功安裝好maven管理工具,但這還不夠,還需要設置maven環境變量。

2.配置maven環境變量

打開終端,退到根目錄/Users/codingBoy/,輸入命令:$ vi ~/.bash_profile打開bash_profile文件,然后添加如下兩行代碼:

export M2_HOME=/Users/robbie/apache-maven-3.3.9
export PATH=$PATH:$M2_HOME/bin

然后繼續退回到根目錄,輸入$ source ~/.bash_profile使bash_profile文件添加的內容即刻生效。

接下來在終端輸入mvn -v,若出現如下內容,說明你的maven管理工具成功安裝并成功配置:[圖片上傳失敗...(image-1ef42b-1526380861601)]

到此,Maven在mac系統下的安裝和配置即完成。接下來講解用maven進行項目管理的一些基礎知識。

3.創建第一個maven項目

創建maven項目有兩種方式,第一種是用命令行輸入代碼、運行即可生成;第二種是直接用IDEA創建web項目時選擇創建maven的web項目即可(IDEA相比eclipse的第一個優點在此就顯露:IDEA已經集成maven插件,所以我們可以直接在IDEA中創建maven項目;而eclipse中我們還要進行下載maven插件等一系列操作,簡直不能再繁瑣。)。 這里我們先介紹第一種在終端輸入命令的方式創建maven項目。

3.1使用命令行創建Maven項目

在終端的根目錄下輸入如下命令:

mvn archetype:generate -DgroupId=cn.codingxiaxw.helloword -DartifactId=helloworld -Dpackage=cn.codingxiaxw.helloword -Dversion=1.0-SNAPSHOT -DarchetypeArtifactId=maven-archetype-quickstart

命令解釋如下:

  • mvn:表示使用的是maven命令。
  • archetype:generate:表示使用generate這個插件為我們的maven項目自動生成一個maven骨架,即我們項目的工程結構(如下圖)。后邊跟的是該插件為我們創建工程結構所需要的一連串的參數。
  • -DgroupId:標識項目的坐標元素之一,與DartifactId,Dpackaging,Dversion組成我們maven項目的坐標,四者唯一確定一個項目。它的值為我們的項目包名,我這里的格式用的我的博客網站后綴+我的用戶名+項目名組成。
  • -DartifactId:標識項目的坐標元素之一,它的值為我們的項目名。我這里指定我要生成的項目名為helloword。
  • -Dpackage:標識項目的坐標元素之一,這里值就跟DgroupId的值保持一致即可。此屬性在命令行中可選。
  • -Dversion:指定版本號。此屬性在命令行中可選
  • -DarchetypeArtifactId:表示我們生成的工程結構為哪一種,這里的屬性值為maven-archetype-quickstart表示生成工程目錄結構為quickstart的結構。其值還可以為maven-archetype-webapp表示生成的工程目錄結構為webapp的結構。

運行該命令,可看到終端中使用的maven命令自動為我們在下載maven的各個依賴包,執行命令的過程時間可能比較久,完成時間取決于個人網絡狀況。

完成后我們可以在自己的根目錄下發現一個名為"helloword"項目名,說明我們成功在終端使用maven命令創建出一個maven項目,打開該helloword項目,會發現我們生成的maven項目的目錄布局為這樣的:

helloword
   |-src
   |---main
   |-----java
   |-------cn
   |---------codingxiaxw   
   |-----------App.java
   |---test|-----java
   |-------cn
   |---------codingxiaxw
   |-----------AppTest.java
   |-pom.xml

沒錯,這就是我們通過命令行自動我們生成的maven項目的骨架,在maven項目的開發中,所有的源代碼放在文件夾 /src/main/java/下, 所有的單元測試代碼放入 /src/test/java/。可以參考官方網站的Maven標準目錄 附加的一個標準的pom.xml被生成。這個POM文件類似于Ant的build.xml文件,它描述了整個項目的信息,一切從目錄結構、項目的插件、項目依賴、如何構建這個項目等,關于pom的介紹我會在下文中進行講解,你也可以參考官方網站的POM官方指南

然后我們便可以打開IDEA-Import Project操作導入helloword包下pom.xml一路next即可打開該maven項目。

這樣我們便使用第一種使用maven命令行的方式創建了我們的maven項目。

3.2使用IDEA創建Maven項目

而第二種方式更加簡單,只需打開IDEA-New Project,出現如下窗口:
[圖片上傳失敗...(image-48a6ad-1526380861601)]

選擇左邊的maven項目,然后點擊右邊框框中的任意一種模版(根據選擇的模版生成我們的項目工程目錄結構,選擇上面講的webapp和quickstart都可,但是二者創建的目錄結構是有差別的,我們先選擇創建quickstart樣式的模版,然后選擇創建webapp樣式的模版,對比一下二者的目錄結構區別)即可next到這一步:[圖片上傳失敗...(image-364a6e-1526380861601)]

填寫我們的項目名和包名然后next到這一步:

[圖片上傳失敗...(image-50885c-1526380861601)]

然后繼續填寫我們的項目名后,點擊finish完成創建,這樣我們便通過第二種方式直接用IDEA創建了我們的maven項目。創建的項目工程結構如圖:

<img src="http://od2xrf8gr.bkt.clouddn.com/%E5%B1%8F%E5%B9%95%E5%BF%AB%E7%85%A7%202016-11-24%20%E4%B8%8B%E5%8D%885.58.13.png" width="50%" height="50%"/>

發現App.java和AppTest.java圖標顯示不對,因為它為我們自動生成的pop.xml文件中添加了依賴但是沒有自動引入jar包,需要我們點擊右下角(也許你的出現在左上角?)的Enable Auto-Import:

[圖片上傳失敗...(image-20eeaf-1526380861601)]

然后我們的工程才算徹底搭建好,如下:

<img src="http://od2xrf8gr.bkt.clouddn.com/%E5%B1%8F%E5%B9%95%E5%BF%AB%E7%85%A7%202016-11-24%20%E4%B8%8B%E5%8D%886.01.54.png" width="50%" height="50%"/>

如上是采用的生成工程目錄的模版是quickstart的,接下來演示創建模版是webapp的,而往往我們的JavaWeb采用的工程模版就是通過webapp生成的,接下來演示通過webapp創建的maven項目,還是打開IDEA-->New Project,出現如下界面:

[圖片上傳失敗...(image-202b79-1526380861601)]

然后next和上述quickstart的步驟一樣,一直到finish,我們創建的maven項目工程結構如下:

<img src="http://od2xrf8gr.bkt.clouddn.com/%E5%B1%8F%E5%B9%95%E5%BF%AB%E7%85%A7%202016-11-24%20%E4%B8%8B%E5%8D%8811.41.09.png" width="50%" />

和上述quickstart創建的模版區別一看便知,為了讓此maven項目符合官網上規定的標準工程結構,所以在IDEA中打開項目配置,添加項目沒有包如在src包下添加test包,在test包下添加java包和resources包,在main包下添加java包然后點擊apply即可,如下圖:
[圖片上傳失敗...(image-24f274-1526380861601)]

到此我們便完成了第一個maven項目的創建,接下來我要進行Maven核心知識的講解,見下篇文章Maven核心知識(待更新)

2018.3.19更

歡迎加入我的Java交流1群:659957958。群里目前已有1800人,每天都非常活躍,但為了篩選掉那些不懷好意的朋友進來搞破壞,所以目前入群方式已改成了付費方式,你只需要支付9塊錢,即可獲取到群文件中的所有干貨以及群里面各位前輩們的疑惑解答;為了鼓勵良好風氣的發展,讓每個新人提出的問題都得到解決,所以我將得到的入群收費收入都以紅包的形式發放到那些主動給新手們解決疑惑的朋友手中。在這里,我們除了談技術,還談生活、談理想;在這里,我們為你的學習方向指明方向,為你以后的求職道路提供指路明燈;在這里,我們把所有好用的干貨都與你分享。還在等什么,快加入我們吧!

2018.4.21更:如果群1已滿或者無法加入,請加Java學習交流2群:305335626 。群2作為群1的附屬群,除了日常的技術交流、資料分享、學習方向指明外,還會在每年互聯網的秋春招時節在群內發布大量的互聯網內推方式,話不多說,快上車吧!

4.聯系

If you have some questions after you see this article,you can tell your doubts in the comments area or you can find some info by clicking these links.

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 227,967評論 6 531
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,273評論 3 415
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 175,870評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,742評論 1 309
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,527評論 6 407
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,010評論 1 322
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,108評論 3 440
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,250評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,769評論 1 333
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,656評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,853評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,371評論 5 358
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,103評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,472評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,717評論 1 281
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,487評論 3 390
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,815評論 2 372

推薦閱讀更多精彩內容