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