1. 程式人生 > >(一)Java工程化--Maven基礎

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

更新 version -128 org ups 管理 pom http pro

MAVEN 讀作 [?mev?n] 翻譯為中文是”內行, 專家”

一. Maven是什麽

1. 包依賴的發展歷史: 原始的jar包導入—>ant—>maven. 是一種項目管理工具.

2. 優勢:

  • convention over configuration 約定優於配置; 這個原則不僅用於maven, 更是目前大多框架如mvc等遵循的原則.
  • 簡單
  • 易於測試
  • 構建簡單
  • CI(持續集成)
  • 插件豐富

二. 下載和安裝

下載:http://maven.apache.org/download.cgi

安裝: 解壓安裝即可

配置環境變量:

  • windows path MAVEN_HOME
  • linux .bash_profile
  • 運行參數 通過環境變量設置 MAVEN_OPTS
  • 配置 settings.xml settings.xml文件是個空的模板,我們可以在此做些自定義配置,如repo存儲目錄<localRepository>,mirror鏡像地址,以及proxy配置<proxies>, 插件<pluginGroups>,私服配置(用戶名密碼等)<servers>, 環境<profile>

查找順序:

技術分享圖片

三. 創建maven項目

  • 項目結構 約定優於配置

技術分享圖片

  • pom.xml

技術分享圖片

groupId 公司組織

artifactId 功能命名

version 版本號

packaging 打包方式, 默認jar;

dependancyManagement 最好只出現在父pom裏面, 用於統一版本號, 只做聲明依賴,子模塊使用時還需要引用,但不需做version指定了.

dependancy

type 默認jar

scope 指定哪個階段使用

  1. complie 編譯,打包 默認 如spring-core
  2. test 測試 如spring-test
  3. provided 編譯 如servlet
  4. runtime 運行時 如JDBC驅動實現包
  5. system 本地一些jar
  6. 依賴傳遞
  7. 依賴仲裁, (1)最短路徑原則, 根據依賴樹,就近取依賴樹中最接近的那個版本;(2)加載順序原則,相同的路徑按加載順序優先的;(3)exclusions 排除包

版本號更新插件,否則需要各模塊修改pom

技術分享圖片

命令: mvn dependancy:tree 查看依賴樹

四. Maven生命周期(三個過程)

區分術語: lifecycle phase goal

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

default compile package install deploy ….

site pre-site—>site—>post-site –> site-deploy

1. A Build Lifecycle is Made Up of Phases 一個構建生命周期是有多個phase組成

2. A Build Phase is Made Up of Plugin Goals 一個構建phase是由多個插件目標goal構成

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