目錄
- 一、Maven 概述
- 1. Maven 核心概念
- 2. 安裝Maven環境
- 3. Maven如何換資源存放位置
- 3. Maven如何換鏡像
- 二、Maven核心概念
- 1. 約定的目錄結構(重點)
- 2. 倉庫
- 3. pom:專案物件模型(重點)
- 4. maven生命周期
- 5. maven的命令
一、Maven 概述
Maven 是 Apache 軟體基金會組織維護的一款自動化構建工具,專注服務于 Java 平臺的專案構建和 依賴管理
Maven 是目前最流行的自動化構建工具,對于生產環境下多框架、多模塊整合開發有重要作用,Maven 是一 款在大型專案開發程序中不可或缺的重要工具,
Maven 可以整合多個專案之間的參考關系,我們可以根據業務和分層需要任意拆分一個專案;
Maven 提供規范的管理各個常用 jar 包及其各個版本,并且可以自動下載和引入專案中;
Maven 可以根據指定版本自動解決 jar 包版本兼容問題;
Maven 可以把 jar 包所依賴的其它 jar 包自動下載并引入專案
構建程序中的各個環節:清理、編譯、測驗、報告、打包、安裝、部署
構建(build),是面向程序的(從開始到結尾的多個步驟),涉及到多個環節的協同作業, 構建程序的幾個主要環節
- 清理:洗掉以前的編譯結果,為重新編譯做好準備
- 編譯:將Java源程式編譯為位元組碼檔案
- 測驗:針對專案中的關鍵點進行測驗,確保專案在迭代開發程序中關鍵點的正確性
- 報告:在每一次測驗后以標準的格式記錄和展示測驗結果,
- 打包:將一個包含諸多檔案的工程封裝為一個壓縮檔案用于安裝或部署,Java 工程對應 jar 包,Web 工程對應war包,
- 安裝:在Maven環境下特指將打包的結果——jar包或war包安裝到本地倉庫中,
- 部署:將打包的結果部署到遠程倉庫或將war包部署到服務器上運行
1. Maven 核心概念
Maven能夠實作自動化構建是和它的內部原理分不開的,這里我們從 Maven的九個核心概念入手,
看看Maven是如何實作自動化構建的
POM 、約定的目錄結構 、坐標 、依賴管理 、倉庫管理 、生命周期 、插件和目標 、繼承 、聚合
- POM : 一個檔案 名稱是pom.xml , pom翻譯過來叫做專案物件模型,maven把一個專案當做一個模型使用,控制maven構建專案的程序,管理jar依賴,
- 約定的目錄結構 : maven專案的目錄和檔案的位置都是規定的
- 坐標 : 是一個唯一的字串,用來表示資源的
- 依賴管理 : 管理你的專案可以使用jar檔案
- 倉庫管理(了解) :你的資源存放的位置
- 生命周期 (了解) : maven工具構建專案的程序,就是生命周期
- 插件和目標(了解):執行maven構建的時候用的工具是插件
- 繼承
- 聚合
2. 安裝Maven環境
確保安裝了java環境:maven本身就是java寫的,所以要求必須安裝JDK,java的環境變數得先配置好
1. 下載并解壓maven安裝程式
http://maven.apache.org/download.cgi
2. 配置Maven環境
在環境變數中:M2_HOME=Maven的目錄 和在path中配置 %M2_HOME%/bin


3. 檢驗安裝是否成功

3. Maven如何換資源存放位置
-
為什么要下載:maven工具執行的操作需要很多插件(java類--jar檔案)完成的、
-
下載什么東西了:jar檔案--叫做插件--插件是完成某些功能
-
下載的東西存放到哪里:默認倉庫(本機倉庫):
C:\Users\(登錄作業系統的用戶名)Administrator.m2\repository -
執行mvn compile, 結果是在專案的根目錄下生成target目錄(結果目錄),
maven編譯的java程式,最后的class檔案都放在target目錄中 -
設定本機存放資源的目錄位置(設定本機倉庫):
- 修改maven的組態檔, maven安裝目錄/conf/settings.xml先備份 settings.xml
- 修改 <localRepository> 指定你的目錄(不要使用中文目錄)

3. Maven如何換鏡像
如果不換鏡像速度會很慢,所以在安裝完成之后就換默認的
maven安裝目錄/conf/settings.xml,先備份 settings.xml,以免出錯,然后添加以下資訊

<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
二、Maven核心概念
1. 約定的目錄結構(重點)
大家都遵循的一個規則,每一個maven專案在磁盤中都是一個檔案夾(專案-Hello)
Hello/
---/src
------/main #放你主程式java代碼和組態檔
----------/java #你的程式包和包中的java檔案
----------/resources #你的java程式中要使用的組態檔
------/test #放測驗程式代碼和檔案的(可以沒有)
----------/java #測驗程式包和包中的java檔案
----------/resources #測驗java程式中要使用的組態檔
---/pom.xml #maven的核心檔案(maven專案必須有)
2. 倉庫
1. 倉庫是什么:
倉庫是存放東西的, 存放maven使用的jar 和 我們專案使用的jar
maven使用的插件(各種jar)
我們專案使用的jar(第三方的工具)
2. 倉庫的分類
- 本地倉庫, 就是你的個人計算機上的檔案夾,存放各種jar
- 遠程倉庫, 在互聯網上的,使用網路才能使用的庫
- 中央倉庫,最權威的, 所有的開發人員都共享使用的一個集中的倉庫,https://repo.maven.apache.org :中央倉庫的地址
- 中央倉庫的鏡像:就是中央倉庫的備份, 在各大洲,重要的城市都是鏡像,
- 私服,在公司內部,在局域網中使用的, 不是對外使用的
- 倉庫的使用,maven倉庫的使用不需要人為參與,
- 開發人員需要使用mysql驅動--->maven首先查本地倉庫--->私服--->鏡像--->中央倉庫
3. pom:專案物件模型(重點)
1. 坐標:唯一值, 在互聯網中唯一標識一個專案的
需要特別注意的是,專案在倉庫中的位置是由坐標來決定的:groupId、artifactId 和 version 決定專案在倉庫中 的路徑,artifactId 和 version 決定 jar 包的名稱
<groupId>公司域名的倒寫</groupId>
<artifactId>自定義專案名稱</artifactId>
<version>自定版本號</version>
https://mvnrepository.com/ 搜索使用的中央倉庫, 使用groupId 或者 artifactId作為搜索條件
2. packaging:
打包后壓縮檔案的擴展名,默認是jar ,web應用是war ,packaging 可以不寫, 默認是jar
3. 依賴
一個 Maven 專案正常運行需要其它專案的支持,Maven 會根據坐標自動到本地倉庫中進行查找
dependencies 和dependency ,相當于是 java代碼中import
你的專案中要使用的各種資源說明, 比我的專案要使用mysql驅動
<dependencies>
<!--依賴 java代碼中 import -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.9</version>
</dependency>
log4j日志依賴
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
junit單元測驗依賴
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
</dependency>
</dependencies>
4. maven生命周期
maven的生命周期:就是maven構建專案的程序,清理,編譯,測驗,報告,打包,安裝,部署
5. maven的命令
maven的命令:maven獨立使用,通過命令,完成maven的生命周期的執行,
maven可以使用命令,完成專案的清理,編譯,測驗等等,當然了,現在這個階段直接在IDEA中操作就行
Maven 提供一個專案構建的模型,把編譯、測驗、打包、部署等都對應成一個個的生命周期階段,并對 每一個階段提供相應的命令,程式員只需要掌握一小堆命令,就可以完成專案的構建程序,
- mvn clean 清理(會洗掉原來編譯和測驗的目錄,即 target 目錄,但是已經 install 到倉庫里的包不會洗掉)
- mvn compile 編譯主程式(會在當前目錄下生成一個 target,里邊存放編譯主程式之后生成的位元組碼檔案)
- mvntest-compile 編譯測驗程式(會在當前目錄下生成一個 target,里邊存放編譯測驗程式之后生成的位元組碼檔案)
- mvn test 測驗(會生成一個目錄surefire-reports,保存測驗結果)
- mvn package 打包主程式(會編譯、編譯測驗、測驗、并且按照 pom.xml 配置把主程式打包生成 jar 包或者 war 包)
- mvn install 安裝主程式(會把本工程打包,并且按照本工程的坐標保存到本地倉庫中)
- mvn deploy 部署主程式(會把本工程打包,按照本工程的坐標保存到本地庫中,并且還會保存到私服倉庫中, 還會自動把專案部署到 web 容器中),
注意:執行以上命令必須在命令列進入pom.xml所在目錄!
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/107427.html
標籤:Java
