天天看點

(一)Java工程化--Maven基礎

Maven 讀作['mevən] 翻譯成中文是"内行,專家"

Maven是什麼

  1. 包依賴的前世今生:

    原始的jar包引用--> ant --> maven.

    是一種項目管理工具

  2. Maven優勢:
  • convertion over configuration 約定優于配置: 這個原則不僅适用于maven, 更是目前大多數架構遵循的原則,如mvc
  • 簡單
  • 易于測試
  • 建構簡單
  • CI(持續內建)
  • 插件豐富

下載下傳和安裝

  1. 下載下傳: http://maven.apache.org/download.cgi
  2. 安裝: 解壓安裝即可
  3. 環境變量配置:
  • windows: 配置path MAVEN_HOME
  • linux: 在 .bash_profile 檔案中
  • 運作參數: 定義環境變量MAVEN_OPS
  • 配置settings.xml: settings.xml檔案是個空模闆,我們可以在這個檔案進行一些自定義配置. 常用的配置如:repo存儲目錄

建立maven項目

  • 項目結構: 遵循約定優于配置原則, 項目包的組織結構如下
    (一)Java工程化--Maven基礎
  • pom.xml
    groupId 公司組織id
    
    artifactId 功能命名
    
    version 版本号
    
    packageing 打包方式,預設jar,可修改為maven-project,war
    
    dependancyManagement 最好之出現在父pom中,用于統一版本号,隻做聲明依賴,子子產品pom中還需要引用,但不需要制定version.
    
    dependancy
    
    type 預設jar
    
    scope 指定哪個階段适用,各階段如下:      
  1. compile 編譯,打包,預設 如spring-core
  2. test 測試 如spring-test
  3. provided 編譯 如servlet
  4. runtime 運作時 如JDBC驅動實作包
  5. system 本地一些jar

    依賴傳遞

    依賴仲裁:(1)最短路徑原則,根據依賴樹就近取最接近的版本;(2)加載順序原則;(3)exclusions 排除包

指令: mvn dependancy:tree

Maven生命周期(三個過程)

區分術語:lifecycle/phase/goal

生命周期:

  1. clean

包含的phase: pre-clean --> clean --> post-clean

  1. default

compile package install deploy ...

  1. site

pre-site --> site -->post-site --> site-deploy

A Build Lifecycle is Made Up of Phases 一個建構生命周期是有多個phase組成
A Build Phase is Made Up of Plugin Goals 一個建構phase是由多個插件目标goal構成