一般工程的特點
什么是Maven
- Maven是一款服務于Java平臺的自動化共建構建工具
- 構建
通過各種代碼圖片等素材 > 編譯 > 構建 - 構建的各個環(huán)節(jié)
- 清理 : 將以前的. class文件刪除;
- 編譯 : 將.java編譯為.class字節(jié)碼文件;
- 測試 : 自動測試,自動調用JUnitl;
- 報告 : 測試程序執(zhí)行結果;
- 打包 : 動態(tài)Web工程打war包,java工程打為jar包;
- 安裝 : Maven特定的概念--將打包的文件復制到"倉庫"中指定的位置;
- 部署 : 將動態(tài)Web工程生成的war包復制到Servlet容器的指定目錄下,使其可以運行;
Maven的核心概念
- 約定的目錄結構
- POM
- 坐標
- 依賴
- 倉庫
- 生命周期\插件\目標
- 繼承
- 聚合
安裝Maven核心程序
1. 下載Maven
2. Maven環(huán)境變量配置
-
MAVEN_HOME
- 解壓后的文件路徑
例 :C:\Program Files\Java\apache-maven-x.x.x
- 解壓后的文件路徑
-
path
- 在原有的path中添加
例 :%MAVEN_HOME%\bin\
- 在原有的path中添加
- 驗證
- CMD:
mvn -v
配置成功時,會返回如下(因電腦差異,會有細微區(qū)別)
- CMD:
Apache Maven 3.5.4 (1edded0938998edf8bf061f1ceb3cfdeccf443fe; 2018-06-18T02:33:14+08:00)
Maven home: C:\Program Files\Java\apache-maven-3.5.4\bin\..
Java version: 1.8.0_102, vendor: Oracle Corporation, runtime: C:\Program Files\Java\jdk1.8.0_102\jre
Default locale: zh_CN, platform encoding: GBK
OS name: "windows 10", version: "10.0", arch: "amd64", family: "windows"
Maven工程
創(chuàng)建Maven的目錄
- 目錄結構
- 根目錄:工程名
-
src
目錄:源碼 -
pom.xml
文件:Maven工程的核心配置 -
main
目錄:存放主程序 -
test
目錄:存放測試程序 -
java
:.java
源文件 -
resources
:各種配置文件
- 為什么要遵守這樣的約定?
- Maven要負責工程的自動化構建,因為要根據(jù)這種約定找文件,才可以編譯;
- 也可以自定義,但是要采取這兩種方式:
- 以配置的方式明確
如classpath:spring-context.xm;
- 或者遵循默認的方式
如log4j.properties
- 以配置的方式明確
- 默認:約定 > 配置 > 編碼 (盡可能的使用默認配置,減少代碼量)
常用的Maven命令
- 注意:執(zhí)行與構建過程相關的Maven命令,必須進入pom.xml所在的目錄
與構建過程相關 : 編譯 測試 打包 ... - 常用命令 :
-
mvn clean
: 清理 -
mvn compile
: 編譯主程序 -
mvn test-compile
: 編譯測試程序 -
mvn test
: 執(zhí)行測試 -
mvn package
: 打包 -
mvn install
: 安裝 -
mvn site
: 生成站點
-
關于源碼和倉庫
- Maven的核心程序只定義了抽象的生命周期,但是不提供你所需的插件
- 當執(zhí)行Maven命令需要某些插件是,Maven核心程序回到本地倉庫中查找
- 本地倉庫默認位置 :
c:Users\[登陸當前系統(tǒng)的用戶名]\.m2\repository
- 如果找不到,它會自動連接外網,到中央倉庫下載;
- 失敗時,構建失敗
- 修改默認倉庫位置可以到事先準備好的路徑進行加載.
- 解壓路徑 :
conf\settings.xml
- xml中的
<localRepository>
標簽中 - 替換標簽內容為新倉庫的絕對路徑
- 解壓路徑 :
POM
- 含義 : Project Object Model
- pom.xml 對于Maven工程是核心配置文件,與構建過程相關的一切設置都在這個文件中配置;
坐標(J.A.V)
- 使用下面三個參數(shù)在倉庫中唯一定位一個Maven工程
-
groupid
: 公司或組織域名倒敘+項目名 -
artifactid
: 模塊名 -
version
: 版本
-
倉庫
- 本地倉庫
為當前電腦的所有Maven工程服務 - 遠程倉庫
- 私服 : 局域網的倉庫;
- 中央倉庫 : 假設在Internet上,為全世界服務;
- 中央倉庫鏡像 : 為了減輕中央倉庫的壓力;
- 倉庫保存的內容
- Maven 的插件
- 第三方jar包
- 自己開發(fā)的Maven工程
依賴
-
Maven解析依賴信息是會到本地倉庫中查找被依賴的jarbao
對于我們自己開發(fā)的Maven工程,用使用mvn install
命令安裝后就可以進入倉庫了
-
依賴的范圍
-
compile
- 對主程序是否有效 : 有效
- 對測試程序是否有效 : 有效
-
是否參與打包 : 參與
-
test
- 對主程序是否有效 : 無效
- 對測試程序是否有效 : 有效
- 是否參與打包 : 不參與
-
provided
- 對主程序是否有效 : 有效
- 對測試程序是否有效 : 有效
-
是否參與打包 : 不參與
-