Maven3

1.Maven認知

Maven 是一個項目管理工具。能夠經過一段描述信息很方便的管理項目報告,生成站點,管理JAR文件,等等。
Maven 以「程序構建能力」爲特點,還提供高級項目管理工具。Maven 的「缺省構建規則」具備較高的可重用性。java

一個完整的Maven包括:spring

  1. 一個項目對象模型(Project Object Model,POM)
  2. 一個項目生命週期(Project LIfecycle)
  3. 一個依賴管理系統(Dependency Management System )
  4. 邏輯:用來定義在生命週期階段中「插件目標」(plugin goal)

當使用 Maven 時,用一個明確的 pom 來描述項目,而後 Maven 利用橫切邏輯,這些邏輯來自一組共享的(或者自定義)的插件。apache

Maven 的生命週期在運行 mvn install 時被調用。這條命令告訴 Maven 執行一系列的有序的步驟,直到到達指定的生命週期。api

在此期間,Maven 運行了許多默認的插件目標,包括「編譯」和建立一個JAR文件,通俗地說,不須要再手動點擊編譯運行按鈕。eclipse

2.Maven 的安裝與配置

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

  1. 首先要肯定 jdk 已經安裝和配置
  2. maven-xxxx-xxx-bin.jar 解壓到放到 D 盤
  3. 配置 maven 環境系統變量:M2_HOME       D:\maven\apache-maven-3.3.3
  4. 配置Path: 加上 ;%M2_HOME%\bin

pom.xml 文件

<!-- 
  modelVersion:POM 模型版本 4.0.0 固定
  groupId:通常指某個公司或者某個組織的某個項目 好比 org.springframework
  artifactId:通常指某個具體項目的某個具體模塊 好比 spring-context
  Version:項目的版本
-->

<project xmlns="http://maven.apache.org/POM/4.0.0" 
     xmlns:xsi
="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation
="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">   <modelVersion>4.0.0</modelVersion>   <groupId>com.java1234.HelloWorld</groupId> <artifactId>HelloWorld</artifactId> <version>0.0.1-SNAPSHOT</version> <dependencies>     <!--Mvn 遠程倉庫 注入相應依賴-->
   </dependencies>
</project>
  • Maven 常見命令

    • Mvn compile 編譯
    • Mvn clean 清空
    • Mvn test 測試
    • Mvn package 打包
    • Mvn install 把項目安裝到本地倉庫
  • Mvn 遠程倉庫地址:

  • Maven 本地倉庫遷出 C 盤:配置 setting 文件

    <localRepository>D:\maven\repository</localRepository>

3. m2eclipse 插件安裝

 打開 Eclipse,點擊菜單 Help - > Install New Software 點擊 Add 按鈕ide

(因爲最新版的 Eclipse 代號 Mars,已經直接集成了 Maven,因此無需在安裝 m2eclipse 插件)工具

配置:post

  1. 配置本地倉庫;
  2. 配置下載 jar 包源碼;(下載JAR包的同時下載源碼)

Windows -> preference -> moven ->勾選如下兩項!測試

4. Maven 核心技術

1.Maven 倉庫概念

    • Maven 遠程倉庫配置文件: $M2_HOME/lib/maven-model-builder-3.3.3.jar
    • 文件:org\apache\maven\model\pom-4.0.0.xml
      <repositories>
          <repository>
              <id>central</id>
              <name>Central Repository</name>
              <url>https://repo.maven.apache.org/maven2</url>
              <layout>default</layout>
              <snapshots>
                  <enabled>false</enabled>
              </snapshots>
           </repository>
      </repositories>

       

2.Maven 的依賴特性:

依賴選擇按照:「最短路徑原則」 和 「最早聲明原則」

3.Maven 聚合和繼承特性

5.Maven 依賴範圍

classpath 分爲3種:

    1. 編譯 classpath,
    2. 測試 classpath,
    3. 運行 classpath

Scope 依賴範圍選項:

      • Compile:編譯依賴範圍,默認就是compile。在編譯、測試、運行均有效;
      • Test:測試依賴範圍。僅在測試有效,如JUnit;
      • Provided:已提供依賴範圍。編譯、測試有效,運行時無效,如servlet-api;
      • ystem:系統依賴範圍。使用system範圍的依賴必須經過systemPath指定依賴文件的路徑;
      • Import:導入依賴範圍。使用dependencyManagement時,能夠導入依賴配置。

5. Maven 生命週期與插件

Maven 經過插件的方式來完成一系列過程來實現功能。

Maven 擁有三套獨立的生命週期:

 

Clean 生命週期

    • pre-clean:執行一些清理前須要完成的工做
    • clean:清理上一次構建生成的文件
    • post-clean:執行一些清理後須要完成的工做

Default 生命週期

    • 1,validate;
    • 2,initialize;
    • 3,generate-sources;
    • 4,process-sources;
    • 5,generate-resources;
    • 6,process-resources;
    • 7,compile;
    • 8,process-classes;
    • 9,generate-test-sources;
    • 10,process-test-sources;
    • 11,generate-test-resources;
    • 12,test-compile;
    • 13,process-test-classes;
    • 14,test;
    • 15,prepare-package;
    • 16,package;
    • 17,pre-integration-test;
    • 18,integration-test;
    • 19,post-integration-test;
    • 20,integration-test;
    • 21,post-integration-test;
    • 22,verifty;
    • 23,install;
    • 24,deploy;

Site 生命週期

    • pre-site:
    • site:
    • post-site:
    • site-deploy:

書籍推薦:《Maven實戰》許曉斌 著

相關文章
相關標籤/搜索