Apache Maven is a software project management and comprehension tool. Based on the concept of a project object model (POM), Maven can manage a project’s build, reporting and documentation from a central piece of information
是一個軟體(特別是Java軟體)專案管理及自動構建工具,由Apache軟體基金會所提供。基於專案物件模型(縮寫:POM)概念,Maven利用一箇中央資訊片斷能管理一個專案的構建、報告和文件等步驟
Maven 確實遮蔽了很多細節,它已經大大簡化了開發人員的工作
Maven 使用專案物件模型(POM)和一組所有專案共用的外掛來構建專案,從而提供統一的構建系統。開發人員使用 Maven 構建專案的話,後期維護專案會節省大量時間
Maven 提供了大量有用的專案資訊,這些資訊部分來自您的POM,部分來自專案源
Maven 會彙總當前最佳開發實踐的原則,並通過 Maven 影響其他專案
Maven 爲 Maven 用戶端提供了一種安裝更新的簡單方法,開發人員可以簡單便捷的利用 Maven 的最新特性
首先我們要下載Maven,這裏附上maven下載地址Maven下載地址
下載之後當然就是Maven的設定了,接下來就是解壓,之後在電腦的環境變數中設定如下:
新建:M2_HOME 變數爲:解壓Maven資料夾的根目錄
然後再Path環境屬性中新增:bin: %M2_HOME%\bin;
設定以後在cmd中執行 mvn -v 測試是否成功
當然,安裝後的中央倉庫的地址爲外網的,下載速度相對較慢,可以通過組態檔修改私服倉庫爲國內
即修改:apache-maven-xxx\conf目錄下的settings檔案
新增本地倉庫:<localRepository>D:\UserData\repo</localRepository>
中間的資料夾可以自己指定
指定私服倉庫
<mirrors>
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
</mirrors>
└─src 原始碼
├─main 主要
│ ├─java java原始碼
│ │ └─com
│ │ └─woniuxy
│ │ └─build 包名
│ └─resources 資源: 組態檔
└─test 測試相關
└─java
└─com
└─woniuxy
└─build
maven對構建(build)的過程進行了抽象和定義,這個過程被稱爲構建的生命週期(lifecycle),生命週期(lifecycle)由多個階段(phase)組成,每個階段(phase)會掛接一到多個goal,goal是maven裡定義任務的最小單元,相當於ant裡的target,可以理解maven爲一個外掛的容器,每個外掛系結到某個goal執行
預設生命週期:校驗-初始化-編譯-測試-打包-整合測試-安裝-部署
validate-initialize-compile-test-package-integrationTest-install-deploy
Maven座標主要用來指明其依賴範圍,主要包括一下幾種
只有編譯時和執行時依賴是傳遞的
其中主要包括兩個原則
本地倉庫(local)->私服映象(aliyun)->中央倉庫central
給pom.xml新增Servlet依賴
<!--▽Servlet規範相關▽-->
<!-- servlet API支援 -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
</dependency>
<!-- jstl支援 -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.1.2</version>
<type>jar</type>
</dependency>
<dependency>
<groupId>taglibs</groupId>
<artifactId>standard</artifactId>
<version>1.1.2</version>
<type>jar</type>
</dependency>
<!--△Servlet規範相關△-->