1. 程式人生 > >maven基礎-maven的配置與基本使用

maven基礎-maven的配置與基本使用

1. maven的兩大核心

  1.1 依賴管理:對jar包的管理

  1.2 專案構建:專案在編碼完成後,對專案進行編譯,測試,打包,部署等。

        (如通過命令將web專案部署在tomcat中:進入到專案根目錄,輸入命令列 mvn tomcat:run)

 

2. maven安裝及配置

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

  2.2 解壓到本地磁碟(注意:解壓路徑不要帶中文,空格)

  2.3 配置環境變數:

    2.3.1 M2_HOME: maven安裝根路徑

    2.3.2 新增PATH變數: %M2_HOME%/bin

    (前提:因為maven由java開發,所以依賴jdk,要求安裝jdk,且配置JAVA_HOME環境變數)

    2.3.3 測試安裝成功:

  

3. 倉庫型別及配置

  3.1 倉庫型別:

如果,程式設計師本地電腦會有本地倉庫,如果某個工程需要test.jar的jar包,首先會先從本地倉庫找,如果找到則直接依賴。如果沒有,則判斷是否配置並連線了私服,如果連線了私服且私服中有jar包,則會從私服下載到本地倉庫,並依賴。如果未配置連線私服,則會連線中央倉庫,從中央倉庫下載到本地倉庫並依賴。

  3.2 配置本地倉庫

那麼,我們的本地倉庫如何配置?

開啟maven根目錄/conf/setting.xml

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
<!--本地存放路徑-->
<localRepository>c:/maven/repository</localRepository>

<localRepository>標籤中配置的c:/maven/repository就是本地倉庫地址

 

4. maven的標準專案結構(後續介紹如何生成)

 

5. maven的常用命令(在專案根目錄下)

  5.1 首先看一下一個maven基本專案的專案根目錄

  5.2 mvn clean:會將專案根目錄下的target目錄幹掉,該目錄中包含有.class位元組碼檔案

  5.3 mvn compile:編譯,重新生成target目錄,目錄中包含.class位元組碼檔案等

  5.4 mvn test:執行根目錄下 src/test/java 目錄下所有XxxTest.java檔案中的單元測試方法。(注意:在此過程中,會執行complie操作)

  5.5 mvn package:打包(生成jar包或war包) ,在target目錄下生成jar包或war包等。(注意:在此過程中,執行了compile和test操作)

  5.6 mvn install:將專案進行打包,並放入本地倉庫,供其它專案使用。(注意:過程中,執行了test,compile和package操作)

 

6. maven專案生命週期

  6.1 cleanLifeCycle:清理生命週期 clean

  6.2 defaultLifeCycle: 預設生命週期 compile-test-package-install-deploy

  6.3 siteLifeCycle: 站點生命週期 site

三套生命週期,每一套生命週期相互獨立,互不影響

 

7. maven整合Eclipse

  7.1 windows-preference-maven-installations-add:新增本地安裝的maven版本

  7.2 windows-preference-maven-userSettings :讓eclipse知道maven本地倉庫位置

 

8. 建立maven專案

 

9. jar包依賴範圍

  

如圖,我們有兩種方式檢視jar包的依賴範圍,配置檔案中,由<scope>標籤註明

共有5類:

  compile: 編譯,測試,部署到tomcat都會依賴該jar包

  test:僅測試時依賴該jar包

  provided:編譯,測試時依賴該jar包

  runtime:測試,編譯會依賴該jar包

  system:編譯,測試會依賴該jar包

注:預設是compile(即不配置<scope>標籤時),常用的是compile和provided

舉例:如果我們的web專案中依賴servlet-api,jsp-api這兩個jar包,如果設成compile,那麼編譯測試以及部署到tomcat時都會依賴這兩個jar包,但是我們部署的tomcat自身也依賴了servlet-api和jsp-api這兩個jar包,此時部署時可能會產生衝突,導致執行失效。所以,這兩個jar包,我們一般會選擇provided。