Maven實戰-Maven基本使用,基本命令,基本概念,衝突解決

Maven實戰此書閱讀後重要知識點總結如下:

一、什麼是Maven

Maven的目標

Maven的主要目標是希望開發人員能在最短的時間內理解開發的完整狀態。

爲了達到這個目標,Maven在下面幾個方面做出了努力:

簡化構建過程

統一構建體系

提供高質量的項目信息

提供開發的最佳實踐指南

實現透明的向新特性的遷移

簡化構建過程

使用Maven不須要知道一些潛在的或底層的機制,Maven屏蔽了非常多細節

統一構建體系

Maven通過使用project對象模型(project object model POM)以及一系列可共享的插件來構建project。僅僅要你熟悉了怎麼構建一個Mavenproject。你就自然知道了怎麼構建全部的Mavenproject。

這樣的統一的構建體系能夠節省大量的瞭解project結構的時間。

提供高質量的項目信息

Maven提供了非常多實用的project信息,這些信息一部分來自於project的POM文件,一部分來自原project源代碼。

Maven能夠提供下面信息:

從源代碼控制處生成的改動日誌文檔

交叉引用源代碼

開發人員郵件列表

項目依賴列表

包括覆蓋率的單元測試報告

Maven改進了project信息的提供。全部這些信息對Maven用戶來說都是透明的。

Maven還同意其它人提供Maven插件來獲取project信息,與Maven獲取的標準信息相同處理。這些都須要基於POM來完畢。

提供開發的最佳實踐指南

Maven致力於收集現有的開發的最佳實踐原則,並以此來簡化project的開發。 比如:規範。運行,和單元測試報告是正常使用Maven構建週期的一部分。

眼下Maven中的單元測試最佳實踐例如以下: 將測試源代碼放在一個單獨的,但與主代碼同級的位置 使用測試用例命名規範來定位和運行測試 讓測試用例本身去設置測試環境,不要爲了測試而專門構建環境 Maven 在project的文件夾結構上也給出了很多最佳實踐指南。遵守了這些project文件夾結構指南後。假設你瞭解了這樣的文件夾結構,你也就會easy的瞭解其它全部遵循了這樣的文件夾結構的Mavenproject。

二、安裝Maven

一、準備工作

1、確定電腦上已經成功安裝jdk7.0以上版本

2、maven安裝包   下載地址:http://maven.apache.org/download.cgi

二、解壓Maven安裝包  

在上述地址中下載最新的Maven版本,解壓到指定目錄(此處根據自己的需要),本人解壓到了D:\install\maven\apache-maven-3.5.0目錄下,裏面有bin、lib,conf等文件夾。

三、配置Maven環境變量

在我的電腦-------屬性-------高級系統設置---------環境變量---------系統變量--------新建

變量名:M2_HOME

變量值:D:\install\maven\apache-maven-3.5.0

找到Path在環境變量值尾部加入:;%M2_HOME%\bin;  //前面注意分號

四、檢查jdk和maven的環境變量是否配置成功

打開dos窗口運行命令mvn -v,出現如下圖所示的信息說明安裝成功;

五、修改本地倉庫位置(如果不想修改本地倉庫位置則這一步驟省略即可)

Maven會將下載的類庫(jar包)放置到本地的一個目錄下(一般默認情況下maven在本機的倉庫位於C:\我的文檔中\.m2.\repository),如果想重新定義這個目錄的位置就需要修改Maven本地倉庫的配置:

1、在自己喜歡的位置創建文件夾,此處本人創建的位置是(F:\Maven\repo)

2、在安裝Maven的目錄下找到conf文件夾,在文件夾中找到settings.xml文件,複製settings.xml文件放於F:\Maven

3、修改settings.xml文件,如下圖所示:

4、在安裝Maven的目錄下找到conf文件夾,在文件夾中找到settings.xml文件,更改默認的倉庫位置如下圖所示:(注意兩個地方的settings.xml都要修改)

5、實驗一下我們剛纔做的事情產生作用沒有,控制檯輸入:mvn help:system

執行完該命令之後,在F:/Maven/repo下面會出現很多文件,這些文件就maven從中央倉庫下載到本地倉庫的文件。

三、Maven基本命令

mvn –version mvn -v 顯示maven安裝版本信息

mvn clean 清理項目打包文件,即項目下的target目錄

mvn compile 編譯項目下的src/main/Java目錄源代碼

mvn package 項目打包,在項目target目錄下生成編譯後的jar或war等文件

mvn install 項目打包併發布到本地倉庫

mvn test 單元測試命令,執行src/test/java/下的junit的單元測試用例

-U 強制遠程更新,否則默認每天只更新一次

比如-D的使用:mvn package -Dmaven.test.skip=true,即打包的時候跳過單元測試,install、deplay命令都可以使用。

可以輸入mvn -h獲取更多命令的幫助。

mvn site 生成項目相關信息的網站

mvn eclipse:eclipse 將項目轉化eclipse項目

mvn dependency:tree 打印出項目的整個依賴關係樹(排除jar包衝突時 瞭解整個項目依賴jar依賴樹時最有用)

mvn deploy 項目打包併發布到遠程倉庫

命令參數

-D 傳入屬性參數

-P 使用指定的profile配置

-e 顯示maven運行時的報錯信息

-o 離線本地式執行命令,不去遠程倉庫更新包 -X 顯示maven允許的debug信息

四、Maven概念詳解

什麼是Maven倉庫?

Maven倉庫用來存放Maven管理的所有Jar包。

分爲:本地倉庫 和 中央倉庫。

本地倉庫 Maven本地的Jar包倉庫。

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

當項目編譯時,Maven首先從本地倉庫中尋找項目所需的Jar包,若本地倉庫沒有,再到Maven的中央倉庫下載所需Jar包

什麼是“座標”?

在Maven中,座標是Jar包的唯一標識,Maven通過座標在倉庫中找到項目所需的Jar包。

如下代碼中,groupId和artifactId構成了一個Jar包的座標。

<dependency>

<groupId>ch.qos.logback</groupId>

<artifactId>logback-classic</artifactId>

<version>1.1.1</version>

</dependency>

groupId:所需Jar包的項目名 artifactId:所需Jar包的模塊名 version:所需Jar包的版本號

傳遞依賴 與 排除依賴

傳遞依賴:

如果我們的項目引用了一個Jar包,而該Jar包又引用了其他Jar包,那麼在默認情況下項目編譯時,Maven會把直接引用和間接引用的Jar包都下載到本地。

排除依賴:如果我們只想下載直接引用的Jar包,那麼需要在pom.xml中做如下配置:(將需要排除的Jar包的座標寫在中) <exclusions>

<exclusion>

<groupId>ch.qos.logback</groupId>

<artifactId>logback-classic</artifactId>

</exclusion>

</exclusions>

依賴衝突

若項目中多個Jar同時引用了相同的Jar時,會產生依賴衝突,但Maven採用了兩種避免衝突的策略 短路優先 聲明優先

短路優先

本項目——>A.jar——>B.jar——>X.jar 本項目——>C.jar——>X.jar 若本項目引用了A.jar,A.jar又引用了B.jar,B.jar又引用了X.jar,並且C.jar也引用了X.jar。 在此時,Maven只會引用引用路徑最短的Jar。

聲明優先 若引用路徑長度相同時,在pom.xml中誰先被聲明,就使用誰。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章