1. 程式人生 > >maven使用介紹與使用

maven使用介紹與使用

Maven簡介

  • 什麼是Maven
    Maven是apache下的開源專案,專案管理工具,管理java專案。

    1、專案物件模型 (Project Object Model)
    POM物件模型,每個maven工程中都有一個pom.xml檔案,定義工程所依賴的jar包、本工程的座標、打包執行方式。

    2、依賴管理系統(基礎核心 )
    maven通過座標對專案工程所依賴的jar包統一規範管理。

    3、maven定義一套專案生命週期
    清理、初始化、編譯、測試、報告 、打包、部署、站點生成。

    4、一組標準集合
    強調:maven工程有自己標準的工程目錄結構、定義座標有標準。

    5、maven 管理專案生命週期過程都是基於外掛完成的

  • Maven倉庫
    1、中央倉庫
    就是遠端倉庫,倉庫中jar由專業團隊(maven團隊)統一維護。中央倉庫的地址:http://repo1.maven.org/maven2/

    2、本地倉庫
    相當於快取,工程第一次會從遠端倉庫(網際網路)去下載jar 包,將jar包存在本地倉庫(在程式設計師的電腦上)。第二次不需要從遠端倉庫去下載。先從本地倉庫找,如果找不到才會去遠端倉庫找。

    3、私服
    在公司內部架設一臺私服,其它公司架設一臺倉庫,對外公開。

Maven環境搭建

  • 本地倉庫配置
    開啟maven的安裝目錄中conf/ settings.xml檔案,在這裡配置本地倉
    <localRepository>D:\repository_ssh</localRepository>

  • eclipse配置Maven

    1、配置Maven的安裝目錄
    進入eclipse ,選擇選單windows - Preferences , 在左側的樹狀導航中

    點選add按鈕,彈出視窗後選擇maven的安裝目錄
    這裡寫圖片描述
    然後點選Apply
    這裡寫圖片描述
    2、配置User Settings
    這裡寫圖片描述
    選擇左側樹形導航的User Settings ,選擇Maven目錄下conf下的settingsxml
    然後點選Update Settings 、Reindex 和Apply按鈕.

  • 重建本地倉庫索引

    選擇選單 window –> show View
    這裡寫圖片描述
    這裡寫圖片描述
    選擇 Rebuild Index 重新建立索引

Maven入門

  • 建立工程

    1、 選擇選單 File ->new -> Other
    這裡寫圖片描述
    選擇Maven下的Maven Project, Next

    2、 選中下圖紅框部分的複選框(跳過骨架),next
    這裡寫圖片描述
    3、定義工程座標
    maven對所有工程管理基於座標進行管理。
    這裡寫圖片描述
    座標包括:
    Group Id:專案的名稱,專案名稱以域名的倒序,比如:com.thw.mavendemo
    Artifact Id:模組名稱(子專案名稱)
    Version:模組的版本,snapshot(快照版,沒有正式發行)、release(正式發行版本)
    輸入後,Finish 。完成後如下圖
    這裡寫圖片描述
    工程目錄結構說明:

    /src/main/java             主體程式 java原始檔(不要放配置檔案)
    /src/main/resources        主體程式所需要的配置檔案(不要放java檔案)
    /src/test/java             單元測試程式 java原始檔
    /src/test/resources        單元測試程式所用的配置檔案
    /target                    編譯輸出目錄 (工作日誌:class檔案)
    pom.xml                    Maven進行工作的主要配置檔案。 
  • 專案生命週期

    Maven有三套相互獨立的生命週期,分別是:clean、default、site。clean主要是清理專案、default是Maven最核心的的構建專案、site是生成專案站點。每一個大的生命週期又分為很多個階段。後面的階段依賴於前面的階段,這點有點像Ant的構建依賴。生命週期本身相互獨立,使用者可以僅僅呼叫生命週期的某一個階段,也就是說使用者呼叫了default週期的任何階段,並不會觸發clean週期以及site週期的任何事情。三大生命週期蘊含著小小的階段,我們按順序看一下:
    這裡寫圖片描述

(1)clean週期:

     pre-clean:準備清理
     clean:真正的清理工作
     post-clean:執行清理後的一些後續工作

(2)default週期:

validate:驗證
initialize:初始化配置
generate-sources:生成原始碼編譯目錄
process-sources:處理專案主資原始檔,複製資原始檔到outputclasspath
generate-resources:生成資源目錄
process-resources:處理資原始檔
complie:編譯原始碼
process-classes:處理編譯後文件
generate-test-sources:生成測試目錄
process-test-sources:處理專案測試資原始檔,複製測試資原始檔到outputclasspath
generate-test-resources:生成測試資原始檔
process-test-resources:處理測試資原始檔
test-compile:編譯測試程式碼
process-test-classes:處理測試程式碼
test:單元測試執行測試程式碼
prepare-package:打包前的準備
package:將編譯好的程式碼打包成為jar或者war或者ear等等
pre-integration-test:準備整體測試
integration-test:整體測試
post-integration-test:為整體測試收尾
verify:驗證
install:安裝到本地Maven庫
deploy:將最終包部署到遠端Maven倉庫

(3)site週期:

pre-site:準備生成站點
site:生成站點及文件
post-site:站點收尾
site-deploy:將生成的站點發布到伺服器上
  • 常見命令
compile:編譯
clean:清理,將target下的class檔案清理
test: 執行單元測試類,執行src/test/java下的類
package :將java工程打成jar、war。
install:安裝命令,將將程的jar釋出到本地倉庫
釋出到倉庫,目錄按照本工程定義的座標生成目錄