安裝maven
配置Maven的環(huán)境變量之后檢查版本
運(yùn)行:mvn -v
(等同于mvn --version
)(安裝maven之前需要jdk)
配置
配置本地倉庫
<localRepository>E:\\repository</localRepository>
阿里云私服
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>central</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
骨架
maven插件構(gòu)建骨架:
javase骨架
maven-archetype-quickstart
javaweb骨架
maven-archetype-webapp
坐標(biāo)
Group Id:com.xx.xxx(域名反寫)
Artifact Id:maven-01(工程名)
Version:0.0.1-SNAPSHOT(打包版本號)
Package:com.xx.xx.xx(默認(rèn)包結(jié)構(gòu),可不填)
JDK版本
Maven工程默認(rèn)jdk版本是1.5滋觉,而現(xiàn)在主流的開發(fā)版本都高于這個(gè)版本界阁。
可以通過settings配置修改jdk版本號:
注意:在profiles標(biāo)簽中添加這段配置
<profile>
<id>jdk-1.8</id>
<activation>
<activeByDefault>true</activeByDefault>
<jdk>1.8</jdk>
</activation>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
</properties>
</profile>
JSP報(bào)錯(cuò)問題
方案一:
引入Tomcat環(huán)境
方案二:
加入maven依賴
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
<scope>provided</scope>
</dependency>
運(yùn)行Maven工程
方案一:
直接外部Tomcat運(yùn)行
方案二:
Maven的Tomcat插件
<build>
<plugins>
<!-- 配置tomcat7插件 -->
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.1</version>
<configuration>
<!-- tomcat編碼 -->
<charset>utf-8</charset>
<!-- tomcat端口 -->
<port>8088</port>
</configuration>
</plugin>
</plugins>
</build>
該tomcat是內(nèi)置的袍榆,和外面的tomcat沒有關(guān)系田晚。是內(nèi)置運(yùn)行的和敬,每個(gè)tomcat都是獨(dú)立運(yùn)行的诀诊。它會在target中臨時(shí)生成本次運(yùn)行的tomcat的環(huán)境掀泳。
pom.xml
自定義的POM
(最小POM)就是用戶創(chuàng)建的工程中的那個(gè)POM文件月幌,內(nèi)容較少碍讯。
超級POM
位于maven的內(nèi)部,擁有POM的所有默認(rèn)配置飞醉。
有效POM
=自定義POM+超級POM
通過自定義POM冲茸,可以覆蓋超級POM的內(nèi)容。
獲取坐標(biāo)
依賴的傳遞
只導(dǎo)入核心core一個(gè)jar缅帘,而maven會自動導(dǎo)入這個(gè)core的jar包所依賴其他jar
傳遞性依賴也稱之為間接依賴轴术。
依賴的沖突
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>4.3.22.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.0.6.RELEASE</version>
</dependency>
上邊兩個(gè)jar包有相同的依賴,又因?yàn)榘姹静煌瘴蓿詫?dǎo)致沖突逗栽。
從兩張圖得出的結(jié)論:
依賴是有順序的!誰依賴的版本在前面失暂,項(xiàng)目就使用哪個(gè)版本的jar包彼宠。
maven是如何選擇版本的呢鳄虱?(maven的依賴調(diào)節(jié)策略)
- 路徑近者優(yōu)先
- 第一聲明者優(yōu)先(當(dāng)路徑相同時(shí),則有pom聲明的依賴順序原則)
根據(jù)圖中的三條豎線凭峡,規(guī)律就是拙已,
根據(jù)從左到右三條豎線的包排序之后。
最左邊的豎線中的包優(yōu)先導(dǎo)入摧冀,如果發(fā)現(xiàn)后面的包在前面已經(jīng)有了倍踪,就不導(dǎo)入。
繼承和聚合
比較簡單索昂,略建车。。椒惨。