天天看點

Maven的使用1.下載下傳Maven2.安裝Maven3.設定Maven的環境變量4.認識Maven倉庫和POM檔案5.Maven坐标

Maven項目對象模型(POM),可以通過一小段描述資訊來管理項目的建構,報告和文檔的項目管理工具軟體。它包含了一個項目對象模型(ProjectObjectModel),一組标準集合,一個項目生命周期(ProjectLifecycle),一個依賴管理系統(DependencyManagementSystem),和用來運作定義在生命周期階段(phase)中插件(plugin)目标(goal)的邏輯。當你使用Maven的時候,你用一個明确定義的項目對象模型來描述你的項目,然後通過maven可以應用橫切的邏輯,這些邏輯來自一組共享的(或者自定義的)插件。

Maven 除了程式建構能力為特色之外,還提供進階項目管理工具。由于Maven的預設建構規則有較高的可用性,所有常常用兩三行Maven 構架腳本就可以建構簡單的項目。

Maven的使用

  • 1.下載下傳Maven
  • 2.安裝Maven
  • 3.設定Maven的環境變量
  • 4.認識Maven倉庫和POM檔案
  • 5.Maven坐标

1.下載下傳Maven

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

Maven的使用1.下載下傳Maven2.安裝Maven3.設定Maven的環境變量4.認識Maven倉庫和POM檔案5.Maven坐标

選擇目前最新的版本"apache-maven-3.8.1-bin.zip",下載下傳到本地。

2.安裝Maven

Maven版本不同需要的環境版本也不同,3.8.1版本的Maven需要JDK1.7及以上的版本。apache-maven-3.8.1-bin.zip 直接解壓即可。

3.設定Maven的環境變量

  1. 找到系統的環境設定,在系統變量中,添加新的系統變量,如下圖:
    Maven的使用1.下載下傳Maven2.安裝Maven3.設定Maven的環境變量4.認識Maven倉庫和POM檔案5.Maven坐标
    變量值要寫自己解壓過後的路徑,路徑不要出現中文。
  2. 接下來編輯Path變量,加入%MAVEN_HOME%\bin,如下圖:
    Maven的使用1.下載下傳Maven2.安裝Maven3.設定Maven的環境變量4.認識Maven倉庫和POM檔案5.Maven坐标
  3. 在指令行中輸入指令 mvn -v 檢查是否配置成功,如下圖:
    Maven的使用1.下載下傳Maven2.安裝Maven3.設定Maven的環境變量4.認識Maven倉庫和POM檔案5.Maven坐标

4.認識Maven倉庫和POM檔案

Maven倉庫用來存放Maven管理的所有Jar包。分為:本地倉庫和中央倉庫。當項目編譯時,Maven首先從本地倉庫中尋找項目所需的jar包,若本地倉庫沒有,再到Maven的中央倉庫下載下傳所需的jar包。

本地倉庫:Maven本地的jar包分庫。

中央倉庫:Maven官方提供的遠端倉庫。

pom.xml 檔案是maven項目的配置檔案,可選項的配置有很多,常用配置如下:

<?xml version="1.0" encoding="UTF-8"?>

<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">
    <!-- 模型版本。maven2.0必須這樣寫,現在是maven2唯一支援的版本 -->
    <modelVersion>4.0.0</modelVersion>
    <!-- 公司或者組織的唯一辨別,并且配置時生成的路徑也是由此而生,如com.gxy.ssm,maven會将該項目打成的jar包放本地路徑:/com/gxy/ssm -->
    <groupId>com.gxy.ssm</groupId>
    <!-- 本項目的唯一ID,一個groupId下面可能有多個項目,就是靠artifactId區分 -->
    <artifactId>ssm</artifactId>
    <!-- 本項目目前所處的版本号 -->
    <version>1.0-SNAPSHOT</version>
    <!-- 打包的機制,如pom,jar,maven-plugin,war,ear,rar,par,預設為jar -->
    <packaging>war</packaging>
    <!-- 定義本項目的依賴關系 -->
    <dependencies>
        <!-- 每個dependency對應一個jar包 -->
        <dependency>
            <!-- 一般情況下,maven是通過groupId、artifactId、version這三個元素值(俗稱坐标)來檢索該建構,然後引入你的工程。
            如果别人想引入你現在開發的這個項目(前提是已開發完畢并釋出到了遠端倉庫),
             就需要在他的pom檔案中建立一個dependency節點,将本項目的groupId、artifactId、version寫入,
              maven就會把你上傳的jar包下載下傳到他的本地 -->
            <groupId>com.gxy.ssm</groupId>
            <artifactId>ssm</artifactId>
            <version>1.0-SNAPSHOT</version>
            <!-- maven認為,程式對外部的依賴會随着程式的所處階段和應用場景而變化,所有maven中的依賴關系有作用域(scope)的限制。 -->
            <!-- scope包含如下的取值:compile(編譯範圍)、provided(以提供範圍)、runtime(運作時範圍)、test(測試範圍)、system(系統範圍) -->
            <scope>test</scope>
            <!-- 設定依賴是否可選,預設false,即子項目預設都繼承:為true,則子項目必須顯式的引入,與dependencyManagement裡定義的依賴相似 -->
            <optional>false</optional>
            <!-- 屏蔽依賴關系。比如項目中使用的libA依賴某個庫的1.0版本,libB依賴某個庫的2.0版本,現在想統一使用2.0版本,就可以屏蔽掉對1.0版本的依賴 -->
            <exclusions>
                <exclusion>
                    <groupId>org.slf4j</groupId>
                    <artifactId>slf4j-api</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
    </dependencies>
</project>

           

5.Maven坐标

在Maven中,坐标是jar包的唯一辨別,Maven通過坐标在倉庫中找到項目所需的jar包。

<dependency>
  <groupId>cglib</groupId>
  <artifactId>cglib-nodep</artifactId>
  <version>3.2.10</version>
  <scope>test</scope>
</dependency>
           

如上所示,groupId和artifactId構成了一個jar包的坐标。

groupId:所需jar包的項目名

artifactId:所需jar包的子產品名

version:所需jar包的版本号

scope:依賴範圍,預設範圍是compile