0、POM文件進(jìn)階
- pom文件可以繼承空幻,以達(dá)到高效復(fù)用
- maven官方制定的superpom
- 所有的pom都會(huì)繼承這個(gè)superpom
- superpom 中配置了:
中央倉(cāng)庫(kù)的地址,
插件倉(cāng)庫(kù)地址,
所有默認(rèn)路徑信息
maven生命周期和各個(gè)插件的綁定關(guān)系 - 公司擴(kuò)展POM:
company suprule(RELEASE版本)線上規(guī)則的實(shí)時(shí)更新
|
company supom(qunar的頂級(jí)pom)
|
company-supom-generic(為后端項(xiàng)目提供配置)
|
qta-root(某個(gè)項(xiàng)目組內(nèi)部自己定義的根配置)
1烁峭、Maven依賴沖突
maven2.0引入里傳遞性依賴的設(shè)計(jì)
Maven自身調(diào)節(jié)依賴沖突的方案:
最短路徑優(yōu)先
第一聲明優(yōu)先
Qunar的規(guī)則:強(qiáng)制顯式處理依賴沖突jar包版本沖突:
盡量使用更高的版本
盡量使用已知最穩(wěn)定的版本
不要exclude,除非有理由充分
2秕铛、Maven常用工具命令
修改version
mvn versions:set -DnewVersion=1.0.1-SNAPSHOT
mvn versions:commit分析依賴
mvn dependency:tree
mvn dependency:list
mvn dependency:analyze # 分析依賴则剃,據(jù)此優(yōu)化下載jar包源代碼
mvn dependency:sources查看插件詳情
mvn help:describe -Dplugin=enforcer查看當(dāng)前項(xiàng)目的所有profile
mvn help:all-profilesarthetype
mvn archetype:generate查看有效的pom
mvn help:effective-pom查看系統(tǒng)配置
mvn help:system打包時(shí)跳過(guò)單元測(cè)試
mvn package -Dmaven.test.skip=truemaven同ide的配合
mvn idea:idea
mvn eclipse:eclipsemaven同web容器的配合
mvn tomcat:run
mvn jetty:run
3、Maven版本控制
-
版本的定義:采用GNU方案
<主版本>.<次版本>.<增量版本>-<里程碑版本>主版本:重大架構(gòu)變更 次版本: 較大范圍的功能增加和變化 增量版本: 日常bug修復(fù)或者小需求發(fā)布 快照版本用于開(kāi)發(fā)過(guò)程中如捅,jar包需要持續(xù)更新棍现,不頻繁修改version編號(hào).