1、下載maven : https://maven.apache.org/download.cgi
成都創(chuàng)新互聯(lián)專注于同德企業(yè)網(wǎng)站建設,響應式網(wǎng)站設計,商城網(wǎng)站建設。同德網(wǎng)站建設公司,為同德等地區(qū)提供建站服務。全流程定制網(wǎng)站開發(fā),專業(yè)設計,全程項目跟蹤,成都創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務 配置環(huán)境變量:M2_HOME:D:\apache-maven-3.5.4
:path:%M2_HOME%\bin;
測試maven:cmd mvn -v
2、groupId的值就是項目的包名
artifactId的值就模塊名
version版本
例如:
com.maven.demo
maven01-model
0.0.1SNAPSHOT
maven的目錄結(jié)構(gòu)
project
src
-main
-java
-package
-test
-java
-package
resources
mvn compile
mvn test
mvn package
3、maven常用構(gòu)建命令
mvn -v 查看maven版本
compile 編譯
test 測試
package 打包
clean 刪除target
install 安裝jar包到本地倉庫中(先找pom.xml依賴,在找本地庫,最后找網(wǎng)上中央庫)
maven自動建立目錄骨架
第一種方式 mvn archetype:generate
第二種方式 mvn archetype:generate -DgroupId=組織名,公司網(wǎng)址的反寫+項目名
-DartifactId=項目名-模塊名
-Dversion=1.0.0SNAPSHOT
-Dpackage=代碼存在的包
maven 坐標和倉庫
基本坐標:
構(gòu)件
com.maven.demo
maven01-model
0.0.1SNAPSHOT
倉庫:
本地倉庫
遠程倉庫(maven-model-bulider)
鏡像倉庫
\apache-maven-3.5.4\conf\settings.xml (152行)
maven.net.cn
central
central mirror in china
http://maven.net.cn/content/groups/public
更改倉庫位置(默認路徑:C:\Users\CHUAN\.m2)
\apache-maven-3.5.4\conf\settings.xml (53行)
eclipe安裝maven插件以及創(chuàng)建maven項目
Preferences-Maven-Installations 添加maven目錄
-User Settings 添加maven的setting.xml(.\apache-maven-3.5.4\conf\setting.xml)
maven的生命周期和插件
完整的項目構(gòu)件過程包括:
清理、編譯、測試、打包、集成測試、驗證、部署
maven生命周期
clean 清理項目
pre-clean 執(zhí)行清理前的工作
clean 清理上一次構(gòu)建生成的所有文件
post-clean 執(zhí)行清理后的文件
default 構(gòu)建項目(最核心)
compile test package install
site 生成項目站點
pre-site 在生成項目站點前要完成的工作
site 生成項目的站點文檔
post-site 在生成項目站點后要完成的工作
site-deploy 發(fā)布生成的站點到服務器上
maven生命周期
clean、compile、test、package、install
maven中pom.xml解析
4.0.0 指定當前pom的版本
坐標信息
組織名,公司網(wǎng)址的反寫+項目名 主項目的標識
項目名-模塊名 模塊的標識
當前項目的版本號
打包的方式
項目描述
項目的地址
項目描述
項目開發(fā)人員
許可
組織
重要:依賴列表
test 依賴范圍
true/默認false 設置依賴是否可選,
如果是false子項目是默認繼承的
如果是true子項目必須顯示引入該依賴
排除依賴傳遞列表
依賴管理包含多個依賴,并不會被運行,主要定義到父模塊讓子模塊繼承用的
插件列表
用于子模塊對父模塊的繼承
聚合多個模塊
maven 依賴范圍
三種classpath: 編譯 test測試 運行
compile:默認的范圍,編譯測試運行都有效
provided:在編譯和測試有效
runtime:在運行的時候有效
test:只在測試有效 典型應用junit
system:在編譯和測試有效 與本機系統(tǒng)相關聯(lián),可移植性差
import:導入的范圍,它只使用在dependencyManagerment中,
表示從其他的pom中導入dependecy的配置
http://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html
maven 是依賴傳遞特性的
a-pom.xml
b-pom.xml
c-pom.xml
如果b集成a,c會自動集成a。
如果創(chuàng)建maven項目 jre system library 顯示jre5 但是 jre里面是1.8
修改setting.xml(188行)
jdk-1.8
true
1.8
1.8
1.8
1.8
maven 依賴沖突
1、短路優(yōu)先
A->B->C->X(jar)
A->D->X(jar)優(yōu)先解析
例如:A依賴2.4jar B依賴A和2.0jar C依賴B 所以C依賴2.0jar
2、先聲明先優(yōu)先
如果路徑長度相同,則誰先聲明,先解析誰
例如:A依賴2.4jar B依賴2.0jar C中pom A在B前 所以C依賴2.4jar
Maven 聚合和繼承
maven聚合:
父模塊的pom文件修改
pom
子模塊項目名一
子模塊項目名二
maven繼承:
如果每個module 也就是每個小的模塊中的pom 有重復的 jar
比如junit 這樣可以用繼承。。
創(chuàng)建父類項目,標簽元素值修改為pom
然后加一個標簽 把依賴放到里面。。
其中的版本號, 可以通過引用來表示,需要添加 標簽。
子類用標簽 引用父pom.xml坐標
例如:新建父類中pom.xml如下:
pom
3.8.1
junit
junit
${junitversion}
test
子類pom.xml
父pom.xml的坐標
junit
junit
使用maven構(gòu)建web項目
添加java servlet api的坐標 scope為provide
手動創(chuàng)建maven骨架文件
檢查 java build path outfolder 為/target/classes/目錄
項目轉(zhuǎn)換成web項目,右鍵屬性,project facets為Dynamic 勾選
發(fā)布右鍵屬性,deployment assembly 把test都去掉
在pom.xml使用packaging命令打成war包
添加jetty maven的插件到pom.xml
package
run
maven下載和環(huán)境搭建
maven目錄骨架說明
另外有需要云服務器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。