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

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-profiles

  • arthetype
    mvn archetype:generate

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

  • 查看系統配置
    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方案
    <主版本>.<次版本>.<增量版本>-<里程碑版本>

    主版本:重大架構變更
    次版本: 較大范圍的功能增加和變化
    增量版本: 日常bug修復或者小需求發布
    快照版本用于開發過程中,jar包需要持續更新,不頻繁修改version編號.
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容