Maven進階 | POM文件、生命周期及插件

0、POM文件進階

  • pom文件可以繼承,以達到高效復用
  • maven官方制定的superpom
  • 所有的pom都會繼承這個superpom
  • superpom 中配置了:
    中央倉庫的地址,
    插件倉庫地址,
    所有默認路徑信息
    maven生命周期和各個插件的綁定關(guān)系
  • 公司擴展POM:
    company suprule(RELEASE版本)線上規(guī)則的實時更新
        |
    company supom(qunar的頂級pom)
        |
    company-supom-generic(為后端項目提供配置)
        |
    qta-root(某個項目組內(nèi)部自己定義的根配置)

1、Maven依賴沖突

  • maven2.0引入里傳遞性依賴的設計

  • Maven自身調(diào)節(jié)依賴沖突的方案:
    最短路徑優(yōu)先
    第一聲明優(yōu)先
    Qunar的規(guī)則:強制顯式處理依賴沖突

  • 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

  • 查看當前項目的所有profile
    mvn help:all-profiles

  • arthetype
    mvn archetype:generate

  • 查看有效的pom
    mvn help:effective-pom

  • 查看系統(tǒng)配置
    mvn help:system

  • 打包時跳過單元測試
    mvn package -Dmaven.test.skip=true

  • maven同ide的配合
    mvn idea:idea
    mvn eclipse:eclipse

  • maven同web容器的配合
    mvn tomcat:run
    mvn jetty:run

3、Maven版本控制

  • 版本的定義:采用GNU方案
    <主版本>.<次版本>.<增量版本>-<里程碑版本>

    主版本:重大架構(gòu)變更
    次版本: 較大范圍的功能增加和變化
    增量版本: 日常bug修復或者小需求發(fā)布
    快照版本用于開發(fā)過程中,jar包需要持續(xù)更新,不頻繁修改version編號.
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容