01.Maven介紹

Maven

依賴管理:將項(xiàng)目中需要的jar包統(tǒng)一管理

一、Maven的安裝

1.下載

下載.zip格式的文件

http://archive.apache.org/dist/maven/maven-3

2.安裝

1. 將安裝包解壓到全英文路徑下

  • 安裝目錄下的文件夾功能
    • bin: 放置maven 命令塞椎,比如tomcat7:run
    • boot: 本身的引導(dǎo)程序桨仿,比如自身運(yùn)行需要的類加載器
    • conf: 配置文件
      • settings.xml: 主要使用的配置文件
    • lib: maven自身運(yùn)行所需要的jar包【包括一些tomcat的插件】

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

  • 步驟
    1. 新增系統(tǒng)變量M2_HOME:maven解壓路徑(bin文件夾前一級);
    2. 編輯path變量,新增: %M2_HOME%\bin;
    3. 配置完后新建控制臺,輸入mvn -v案狠;如果出現(xiàn)配置信息則配置成功服傍。

3. 配置阿里的中央倉庫鏡像

配置Maven安裝路徑下的/conf/settings.xml的mirrors標(biāo)簽下,國外的中央倉庫太慢了,使用國內(nèi)阿里老大的骂铁。

<mirrors>
...
    <mirror>
        <id>nexus-aliyun</id>
        <mirrorOf>*</mirrorOf>
        <name>Nexus aliyun</name>
        <url>http://maven.aliyun.com/nexus/content/groups/public</url>
    </mirror>
</mirrors>

二吹零、Maven倉庫

1.Maven倉庫介紹


maven倉庫的種類和關(guān)系.png
  1. settings.xml中的本地倉庫配置,默認(rèn)為Default: ${user.home}/.m2/repository${user.home}指用戶家目錄拉庵,比如C:\Users\Administrator
  2. 配置本地倉庫文件位置,如下將倉庫位置指定到特定位置
<localRepository>D:/repository</localRepository>

2. 倉庫之間的關(guān)系

  1. 倉庫有三類:

    1. 本地倉庫
    2. 遠(yuǎn)程倉庫【私服】
    3. 中央倉庫【TB級別的】
  2. 個(gè)人maven項(xiàng)目中瘪校,先去本地找,本地沒有就去中央倉庫找名段。

  3. 公司的maven項(xiàng)目中阱扬,【本地找】-->【遠(yuǎn)程找】-->【本地上傳到遠(yuǎn)程/遠(yuǎn)程從中央倉庫下】

三、Maven項(xiàng)目結(jié)構(gòu)

  1. maven項(xiàng)目標(biāo)準(zhǔn)目錄結(jié)構(gòu)
    • /項(xiàng)目根路徑
      • /src 源代碼
        • /main
          • /java: 核心代碼部分
          • /resources: 配置文件部分
          • /webapp: 【web工程】頁面資源伸辟,js麻惶、css、圖片等
        • /test
          • /java: 測試代碼
          • /resources: 測試配置文件
      • /target :編譯生成的文件
      • /pom.xml :maven 工程的配置文件信夫,如坐標(biāo)信息

四窃蹋、Maven基本指令

1. 指令介紹

需要cd到項(xiàng)目根路徑下

1. mvn clean:【清空項(xiàng)目編譯文件】 將項(xiàng)目根路徑下的target文件夾刪除了

每個(gè)開發(fā)人員開發(fā)的環(huán)境有可能不同,當(dāng)接手其他人的項(xiàng)目時(shí)需要重新進(jìn)行編譯静稻。

2. mvn compile:【編譯警没,第一步】

將項(xiàng)目進(jìn)行編譯,放置在target文件夾

3. mvn test:【測試振湾,第二步杀迹,先執(zhí)行第1步】

不僅僅編譯/src/main/test/下面的代碼, 同時(shí)編譯/src/main/java/下面的代碼

4. mvn package: 【打包】

  • 可以配置/項(xiàng)目根路徑/pom.xml文件指定打包方式:
    • war: JavaWeb工程
    • jar: 純Java工程
<packaging>war</packaging>

編譯/src/main/test//src/main/java/押搪,同時(shí)打包;

5. mvn install: 【安裝树酪,第三步,先執(zhí)行第1大州、2步】

- 編譯了正式代碼和測試代碼续语,打包工程文件
- 將打包文件安裝到了本地倉庫

6. mvn deploy: 【發(fā)布,第四步厦画,先執(zhí)行第1疮茄、2、3步】

前提是需要進(jìn)行一些配置,后面介紹

7. mvn tomcat7:run: 啟動(dòng)項(xiàng)目

2.maven生命周期

上面介紹的1/2/3/4步驟是 默認(rèn)的生命周期【重點(diǎn)力试,掌握】焚虱,單獨(dú)執(zhí)行某個(gè)步驟會先執(zhí)行先前的步驟;而mvn clean是獨(dú)立的一套 清理生命周期另外懂版,還有一個(gè)站點(diǎn)生命周期(了解)


maven生命周期.png
  • 各個(gè)生命周期完成的工作:
    1. 【clear Lifecycle】:清理生命周期,在進(jìn)行真正構(gòu)建之前進(jìn)行一些清理工作
    2. 【Default Lifecycle】: 構(gòu)建的核心部分:編譯躏率、測試躯畴、打包、部署等薇芝。
    3. 【Site Lifecycle】: 生成項(xiàng)目報(bào)告蓬抄、站點(diǎn)、發(fā)布站點(diǎn)

五夯到、Maven的概念模型

Maven包含了【一個(gè)項(xiàng)目對象模型(Project Object Model)】嚷缭、【一組標(biāo)準(zhǔn)集合】、【一個(gè)項(xiàng)目生命周期(Project Lifecycle】耍贾、【一個(gè)依賴管理系統(tǒng)(Dependency Management System)】阅爽、用來運(yùn)行定義在生命周期階段(phase)中【插件目標(biāo)*(plugin goal)】的邏輯


maven概念模型圖.png

1. 項(xiàng)目對象模型(Project Object Model)

一個(gè)maven工程都有一個(gè)pom.xml文件,通過pom.xml文件定義項(xiàng)目的坐標(biāo)荐开、項(xiàng)目依賴付翁、項(xiàng)目信息、插件目標(biāo)等晃听。

2. 依賴管理系統(tǒng)(Dependency Management System)

通過maven的依賴管理對項(xiàng)目所依賴的jar包進(jìn)行統(tǒng)一管理百侧,pom.xml中配置的坐標(biāo)信息

<dependencies>
    <dependency>
        <groupId>?</groupId> -- 項(xiàng)目的名稱
        <artifactId>?</artifactId> -- 模塊的名稱
        <version>?</version> -- 版本信息
        <scope>?</scope> -- 依賴范圍,作用域能扒,防止jar包沖突
    </dependency>
</dependencies>

3. 一個(gè)項(xiàng)目生命周期(Project Lifecycle)

使用maven完成項(xiàng)目的構(gòu)建佣渴,項(xiàng)目構(gòu)建包括:清理、編譯初斑、測試辛润、部署等過程,maven將這些過程規(guī)范為一個(gè)生命周期见秤;maven通過一些簡單指令即可實(shí)現(xiàn)上面生命周期的各個(gè)過程频蛔,比如執(zhí)行mvn compile執(zhí)行編譯;執(zhí)行mvn clean執(zhí)行清理。


簡圖maven生命周期.png

4. 一組標(biāo)準(zhǔn)集合

maven將整個(gè)項(xiàng)目管理過程定義一組標(biāo)準(zhǔn)秦叛,比如:通過maven構(gòu)建工程的目錄結(jié)構(gòu)晦溪,有標(biāo)準(zhǔn)的生命周期、依賴管理有標(biāo)準(zhǔn)的坐標(biāo)定義等等挣跋。

5. 插件目標(biāo)(plugin goal)

maven管理項(xiàng)目生命周期過程都是基于插件完成的三圆。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子舟肉,更是在濱河造成了極大的恐慌修噪,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,589評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件路媚,死亡現(xiàn)場離奇詭異黄琼,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)整慎,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,615評論 3 396
  • 文/潘曉璐 我一進(jìn)店門脏款,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人裤园,你說我怎么就攤上這事撤师。” “怎么了拧揽?”我有些...
    開封第一講書人閱讀 165,933評論 0 356
  • 文/不壞的土叔 我叫張陵剃盾,是天一觀的道長。 經(jīng)常有香客問我淤袜,道長痒谴,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,976評論 1 295
  • 正文 為了忘掉前任铡羡,我火速辦了婚禮闰歪,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘蓖墅。我一直安慰自己库倘,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,999評論 6 393
  • 文/花漫 我一把揭開白布论矾。 她就那樣靜靜地躺著教翩,像睡著了一般。 火紅的嫁衣襯著肌膚如雪贪壳。 梳的紋絲不亂的頭發(fā)上饱亿,一...
    開封第一講書人閱讀 51,775評論 1 307
  • 那天,我揣著相機(jī)與錄音闰靴,去河邊找鬼彪笼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛蚂且,可吹牛的內(nèi)容都是我干的配猫。 我是一名探鬼主播,決...
    沈念sama閱讀 40,474評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼杏死,長吁一口氣:“原來是場噩夢啊……” “哼泵肄!你這毒婦竟也來了捆交?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,359評論 0 276
  • 序言:老撾萬榮一對情侶失蹤腐巢,失蹤者是張志新(化名)和其女友劉穎品追,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體冯丙,經(jīng)...
    沈念sama閱讀 45,854評論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡肉瓦,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,007評論 3 338
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了胃惜。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片泞莉。...
    茶點(diǎn)故事閱讀 40,146評論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖蛹疯,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情热监,我是刑警寧澤捺弦,帶...
    沈念sama閱讀 35,826評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站孝扛,受9級特大地震影響列吼,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜苦始,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,484評論 3 331
  • 文/蒙蒙 一寞钥、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧陌选,春花似錦理郑、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,029評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至役电,卻和暖如春赚爵,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背法瑟。 一陣腳步聲響...
    開封第一講書人閱讀 33,153評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人否淤。 一個(gè)月前我還...
    沈念sama閱讀 48,420評論 3 373
  • 正文 我出身青樓审残,卻偏偏與公主長得像,于是被迫代替她去往敵國和親酥夭。 傳聞我的和親對象是個(gè)殘疾皇子枯芬,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,107評論 2 356

推薦閱讀更多精彩內(nèi)容