maven簡介及基礎使用

YatHo發表於2017-07-19

一、Maven簡介

     Maven可譯為“知識的積累”、“專家”,主要服務於基於Java平臺的專案構建、依賴管理和專案資訊管理。 
1、Maven—專案構建工具 
    幫助我們自動化構建過程,從清理、編譯、測試到生成報告,再到打包部署。我們需要做的是使用Maven配置好專案,然後輸入簡單的命令,Maven會幫我們處理上上述任務。譬如我們進行測試,只需要遵循Maven的約定編寫好測試用例,當我們執行構建的時候,這些測試便會自動進行。 
Maven抽象了一個完整的構建生命週期模型,模型吸取了大量的其他構建指令碼和工具的優點,總結了大量專案的實際需求,Maven還幫我們標準化構建過程。 
2、Maven—專案依賴管理和專案資訊管理工具 
    在這個開源時代,幾乎任何java應用都會借用一些第三方的開源類庫,這些類庫都可以通過依賴的方式引入到專案中來。隨著依賴的增多,版本不一致、衝突,依賴問題接踵而至。maven提供了一個優秀的解決方案,通過一個座標系統準確的定位每一個構件(artifact),也就是通過一組座標maven能夠找到任何一個Java類庫(如jar檔案)。 
maven還幫我們管理各個專案資訊,專案描述、開發者列表、版本控制系統地址、許可證、缺陷管理系統地址等。maven還為Java開發者提供了一個免費的中央倉庫,幾乎可以找到任何的流行開源類庫,幫我們自動下載構建。 
下載jar包:maven專案會有一個pom.xml檔案,在這個檔案中,新增相應配置,maven會自動幫我們下載相應jar包。<dependencies>結點裡,每配置一個 <dependency>

<groupId>org.springframework</groupId>專案名

<artifactId>spring-webmvc</artifactId>專案模組<version>3.0.5.RELEASE</version>專案版本

maven都會通過:專案名-專案模組-專案版本,在網際網路上的程式碼庫中下載相應jar包。 

下載依賴:在maven的程式碼庫中,每一個jar包也有自己的pom.xml檔案,而這個檔案裡面也會有<dependency>配置,配置的jar包所依賴的其他jar包都會被maven自動下載下來。 

二、Windows環境下Maven的安裝和配置

1、檢查JDK安裝 
在安裝Maven之前,受限要確認已經正確安裝了JDK。Maven可以執行在JDK1.4及以上版本。 

專案

要求

JDK

Maven 3.3 要求 JDK 1.7 或以上
Maven 3.2 要求 JDK 1.6 或以上
Maven 3.1 要求 JDK 1.5 或以上

開啟Windows的命令列:

(1)執行echo %JAVA_HOME%命令,檢查環境變數是否指向了正確的JDK目錄

(2)執行java-version命令,嘗試執行java命令

如果無法執行java命令,或者無法找到JAVA_HOME環境變數,就需要檢查java是否安裝,或者環境變數是否設定正確。 
2、下載maven 
下載地址:http://maven.apache.org/download.cgi ;
大家可以根據專案需求,下載合適的maven版本。
3、本地安裝 
將安裝檔案,解壓到指定的目錄中,如:D:\****\apache-maven-3.1.1 ;
設定環境變數,將maven安裝到作業系統環境中;
我的電腦->屬性->高階系統設定->環境變數 ,新建一個變數,名為MAVEN_HOME(可自定義),變數值為Maven的安裝目錄,如D:\****\apache-maven-3.1.1,點選確定。

接著在系統變數,找到Path變數,新增字串“%MAVEN_HOME%\bin”到系統Path變數末尾(注:多個值之間分號隔開),點選確定。 
開啟Windows的命令列:

(1)執行echo %MAVEN_HOME%命令,檢查環境變數是否指向了正確的Maven目錄

(2)執行mvn-v命令,執行一條maven命令,檢查Windows是否能找到正確的mvn執行指令碼

三、建立Maven專案

以eclipse為例 
File->New->Project,對話方塊中,選擇Maven下面的Maven Project,點選Next。

 

在彈出的對話方塊中,選擇預設(不要選擇create a sample Project,那樣我們就能使用Maven Archetype),點選Next,此時m2eclipse會提示我們選擇一個Archetype,這裡我們選擇一個Archetype,這裡選擇maven-archetype-quickstart,點選Next按鈕。

 

輸入groupId、artifactId、version、package。

 

groupId為程式包名,artifactId為程式名,至此,工程建立完成。

四、編寫POM

    POM(Project object Model專案物件模型),定義了專案的基本資訊,用於描述專案如何構建,宣告專案依賴等。Maven專案的核心是pom.xml。 
    開啟pom.xml新增測試項依賴庫,配置工程,示例:

<?xml version="1.0"?>
<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>
    <parent>
        <groupId>com.sogou.map</groupId>
        <artifactId>parent</artifactId>
        <version>2</version>
    </parent>

    <groupId>com.sogou.com</groupId>
    <artifactId>kubbo-nav</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>
    <name>kubbo-nav</name>
    <url>http://maven.apache.org</url>
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>com.sogou.map</groupId>
            <artifactId>kubbo-all</artifactId>
            <version>0.8</version>
        </dependency>
    </dependencies>
</project>

  

    程式碼的第一行是XML頭,指定了該xml文件的版本和編碼方式。 
    緊接著是Project元素,Project是所有pom.xml的根元素,宣告瞭一些pom相關的名稱空間及xsd元素。 
    根元素下的第一個子元素,modelVersion指定了當前的pom模型的版本。 
    最重要的是包含groupId、artifactId、version的三行,定義了專案基本座標,在maven中,任何的jar、pom或者war都是以基於這些基本座標進行區分的。 
a) groupId:定義了專案屬於哪個組,這個組往往和專案所在組織或者公司有關。 
b) artifactId:定義了當前的maven專案在組中唯一的ID。 
c) Version:指定了專案當前的版本。 
    Maven能讓專案物件模型最大程度的與程式碼相對獨立,解耦,很大程度避免Java程式碼和POM程式碼的專案影響。 
    Maven專案預設的主程式碼目錄是src/main/java,對應的預設測試程式碼目錄是src/test/java。 

    專案中,使用Junit進行單元測試,首先要為專案新增Junit依賴,修改專案的POM程式碼。

    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
        </dependency>
    </dependencies>
 

    程式碼中新增了dependencies元素,該元素下可以包含多個dependency元素以宣告專案依賴。

    這裡新增了一個依賴,groupId是junit,artifactId是junit,version是4.1.2。groupId、artifactId、version,是專案的基本座標,有了這段宣告,maven就能自動下載Junit-4.12.jar包。

相關文章