Maven簡介java
一、Maven是一款服務於Java平臺的自動化構建工具。框架
二、構建:ide
- 概念:以「Java源文件」、「框架配置文件」、「JSP」、「HTML」、「圖片」等資源爲「原料」,去「生產」一個能夠運行的項目的的過程工具
- 編譯:Java源文件【User.java】->編譯->Class字節碼文件【User.class】->交給JVM去執行測試
- 部署:一個BS項目最終運行的並非動態Web工程自己,而是這個動態Web工程的「編譯結果」插件
三、構建過程當中的各個環節xml
- 清理:將之前編譯獲得的舊的class字節碼文件刪除,爲下一次編譯作準備對象
- 編譯:將Java源程序編譯成class字節碼文件繼承
- 測試:自動測試,自動調用junit程序生命週期
- 報告:測試程序執行的結果
- 打包:動態Web工程打war包,Java工程打jar包
- 安裝:Maven特定的概念,將打包獲得的文件複製到「倉庫」中的指定位置
- 部署:將動態Web工程生成的war包複製到Servlet容器的指定目錄下,使其能夠運行
四、自動化構建
安裝Maven核心程序
一、檢查JAVA_HOME環境變量
二、解壓Maven核心程序的壓縮包,放在一個非中文無空格路徑下
三、配置Maven相關的環境變量
M2_HOME
path
四、運行mvn -v 命令查看Maven版本
Maven的核心概念
一、約定的目錄結構
二、POM
三、座標
四、依賴
五、倉庫
六、生命週期/插件/目標
七、繼承
八、聚合
第一個Maven工程
一、建立約定的目錄結構
根目錄:工程名
src目錄:源碼
pom.xml文件:Maven工程的核心配置文件
main目錄:存放主程序
test目錄:存放測試程序
java目錄:存放Java源文件
resources目錄:存放框架或其餘工具的配置文件
經常使用Maven命令
注:執行與構建過程相關的Maven命令,必須進入pom.xml所在的目錄
經常使用命令:
mvn clean:清理
mvn compile:編譯主程序
mvn test-compile:編譯測試程序
mvn test:執行測試
mvn package:打包
mvn install:安裝
mvn site:生成站點
POM
一、含義:Project Object Model項目對象模型
二、pom.xml對於Maven工程是核心配置文件,與構建過程相關的一切設置都在這個文件中進行配置
座標
一、數學中的座標
二、Maven中的座標
使用下面三個向量在倉庫中惟必定位一個Maven工程
groupid:公司或組織域名倒敘+項目名
artifactid:模塊名
version:版本
倉庫
一、倉庫的分類
本地倉庫:
遠程倉庫:
- 私服:架設在當前局域網環境下,爲當前局域網範圍內全部Maven工程服務
- 中央倉庫:架設在Internet上,爲全世界全部Maven工程服務
- 中央倉庫鏡像:分擔中央倉庫的流量,提高用戶訪問速度
二、倉庫中保存的內容:Maven工程
- Maven自身所須要的插件
- 第三方框架或工具的jar包
- 咱們本身開發的Maven工程
依賴
一、Maven解析依賴信息時會到本地倉庫中查找被依賴的jar包
- 對於咱們本身開發的Maven工程,使用mvn install命令安裝後就能夠進入倉庫
二、依賴的範圍
- compile範圍依賴:對主程序、測試程序都有效、參與打包
- test範圍依賴:對主程序無效、對測試程序有效、參與打包
- provided範圍依賴:對主程序、測試程序有效、不參與打包、不參與部署
生命週期
一、各個構建環節執行的順序:不能打亂順序,必須按照既定的正確順序來執行
二、Maven的核心程序中定義了抽象的生命週期,生命週期中各個階段的具體任務是由插件來完成的
三、Maven核心程序爲了更好的實現自動化構建,按照如下特色執行生命週期中的各個階段:
即不管要執行生命週期中的哪個階段,都從這個生命週期最初的位置開始執行
四、插件和目標
- 生命週期的各個階段僅僅定義了要執行的任務是什麼
- 各個階段和插件的目標是對應的
- 類似的目標由特定的插件來完成
在Eclipse中使用Maven
一、Maven插件:Eclipse內置
二、Maven插件的設置
- installations:指定Maven核心程序的位置。
- user settings:指定conf/settings.xml的位置,進而獲取本地倉庫的位置