1. 河豚號 > 生活百科 >

maven怎么用本地庫(maven安裝及配置教程)

Hello,今天給各位童鞋們分享的是Maven,趕緊拿出小本子記下來吧

 

厲害!一文帶你深入學(xué)習(xí)Maven相關(guān)知識點,理論源碼一套搞定

 

第一章 Maven簡介

1.1 軟件開發(fā)中的階段

需要分析: 分析項目具體完成的功能,有什么要求, 具體怎么實現(xiàn)。

設(shè)計階段:根據(jù)分析的結(jié)果, 設(shè)計項目的使用什么技術(shù), 解決難點。

開發(fā)階段:編碼實現(xiàn)功能。 編譯代碼。自我測試

測試階段:專業(yè)的測試人員,測整個項目的功能十分符合設(shè)計要求。出一個測試報告。

項目的打包,發(fā)布階段: 給用戶安裝項目

1.2 Maven能做什么

1)項目的自動構(gòu)建,幫助開發(fā)人員做項目代碼的編譯,測試, 打包,安裝,部署等工作。

2)管理依賴(管理項目中使用的各種jar包)。

依賴:項目中需要使用的其他資源, 常見的是jar 。 比如項目要使用mysql驅(qū)動。我們就說項目依賴mysql驅(qū)動。

1.3 沒有使用maven怎么管理依賴

管理jar ,需要從網(wǎng)絡(luò)中單獨下載某個jar

需要選擇正確版本

手工處理jar文件之間的依賴。 a.jar里面要使用b.jar的類。

1.4 什么是maven

maven是apache基金會的開源項目,使用java語法開發(fā)。 Maven 這個單詞的本意是:專家,內(nèi)行。讀音是[‘me?v(?)n] 或 [‘mevn]。

maven是項目的自動化構(gòu)建工具。 管理項目的依賴。

1.5 maven中的概念

①POM (Project Object Model,項目對象模型)

②約定的目錄結(jié)構(gòu)

③坐標

④依賴管理

⑤倉庫管理

⑥生命周期

⑦插件和目標

⑧繼承

⑨聚合

1.6 maven工具的獲取和安裝

安裝:

確定JAVA_HOME 指定jdk的安裝目錄, 如果沒有JAVA_HOME, 需要在windows的環(huán)境變量中創(chuàng)建JAVA_HOME, 它的值是jdk的安裝目錄(先創(chuàng)建java_home ,然后在path 加上 %xxx%bin )

解壓縮 apache-maven-3.3.9-bin.zip ,把解壓后的文件放到一個目錄中。目錄的路徑不要有中文, 不要有空格。

把maven安裝目錄中下的bin的路徑添加到path中

測試maven的安裝。 在命令行執(zhí)行 mvn -v

 

厲害!一文帶你深入學(xué)習(xí)Maven相關(guān)知識點,理論源碼一套搞定

 

maven解壓后的目錄結(jié)構(gòu)

 

厲害!一文帶你深入學(xué)習(xí)Maven相關(guān)知識點,理論源碼一套搞定

 

maven的其他安裝方式:

確定JAVA_HOME是否有效

在環(huán)境變量中,創(chuàng)建一個叫做M2_HOME (或者MAVEN_HOME) ,它的值是maven的安裝目錄M2_HOME=D:toolsapache-maven-3.3.9

在path環(huán)境變量中,加入 %M2_HOME%bin

測試maven的安裝,在命令行執(zhí)行 mvn -v

 

厲害!一文帶你深入學(xué)習(xí)Maven相關(guān)知識點,理論源碼一套搞定

 

第二章Maven的核心概念

2.1 約定的目錄結(jié)構(gòu)

maven項目使用的大多人 遵循的目錄結(jié)構(gòu)。 叫做約定的目錄結(jié)構(gòu)。

一個maven項目是一個文件夾。 比如項目叫做Hello

 

厲害!一文帶你深入學(xué)習(xí)Maven相關(guān)知識點,理論源碼一套搞定

 

maven的使用方式:

1)maven可以獨立使用: 創(chuàng)建項目,編譯代碼,測試程序,打包,部署等等

2)maven和idea一起使用:通過idea借助maven,實現(xiàn)編碼,測試,打包等等

2.2 POM

POM: Project Object Model 項目對象模型, maven把項目當做模型處理。 操作這個模型就是操作項目。

maven通過pom.xml文件實現(xiàn) 項目的構(gòu)建和依賴的管理。

 

厲害!一文帶你深入學(xué)習(xí)Maven相關(guān)知識點,理論源碼一套搞定

 

2.3 坐標

坐標組成是 groupid, artifiactId, version。 坐標概念來自數(shù)學(xué)。·

坐標作用:確定資源的,是資源的唯一標識。 在maven中,每個資源都是坐標。 坐標值是唯一的。簡稱叫g(shù)av

 

厲害!一文帶你深入學(xué)習(xí)Maven相關(guān)知識點,理論源碼一套搞定

 

項目使用gav:

每個maven項目,都需要有一個自己的gav

管理依賴,需要使用其他的jar (也需要使用gav作為標識)。

搜索坐標的地址:

https://mvnrepository.com/

2.4 依賴 dependency

依賴:項目中要使用的其他資源(jar)。

需要使用maven表示依賴,管理依賴。 通過使用dependency和gav一起完成依賴的使用

需要在pom.xml文件中,使用dependencies 和dependency, 還有g(shù)av 完成依賴的說明。

格式:

 

厲害!一文帶你深入學(xué)習(xí)Maven相關(guān)知識點,理論源碼一套搞定

 

2.5 倉庫

倉庫是存東西的,maven的倉庫存放的是:

maven工具自己的jar包。

第三方的其他jar, 比如項目中要使用mysql驅(qū)動。

自己寫的程序,可以打包為jar , 存放到倉庫。

倉庫的分類:

本地倉庫(本機倉庫): 位于你自己的計算機, 它是磁盤中的某個目錄。

本地倉庫:默認路徑,是你登錄操作系統(tǒng)的賬號的目錄中/.m2/repository

C:UsersNING MEI.m2repository

修改本地倉庫的位置:修改maven工具的配置文件(maven的安裝路徑confsetting.xml)

? 步驟:

? 1)創(chuàng)建一個目錄,作為倉庫使用。 目錄不要有中文和空格。 目錄不要太深。

? 例如: D:openrepository

? 2)修改setting.xml文件,指定 D:openrepository這個目錄

D:/openrepository

遠程倉庫: 需要通過聯(lián)網(wǎng)訪問的

1)中央倉庫: 一個ftp服務(wù)器, 存放了所有的資源。

2)中央倉庫的鏡像: 就是中央倉庫的拷貝。 在各大主要城市都有鏡像。

3)私服:在局域網(wǎng)中使用的。 私服就是自己的倉庫服務(wù)器。 在公司內(nèi)部使用的。

maven使用倉庫: maven自動使用倉庫, 當項目啟動后, 執(zhí)行了maven的命令, maven首先訪問的是本地倉庫, 從倉庫中獲取所需的jar, 如果本地倉庫沒有 ,需要訪問私服或者中央倉庫或者鏡像。

 

厲害!一文帶你深入學(xué)習(xí)Maven相關(guān)知識點,理論源碼一套搞定

 

2.6 maven的生命周期,插件和命令

maven的生命周期: 項目構(gòu)建的各個階段。 包括 清理, 編譯, 測試,報告,打包,安裝,部署。

插件:要完成構(gòu)建項目的各個階段,要使用maven的命令, 執(zhí)行命令的功能是通過插件完成的。插件就是jar,一些類。

命令: 執(zhí)行maven功能是 由命令發(fā)出的。 比如 mvn compile

單元測試(junit):

junit是一個單元測試的工具, 在java中經(jīng)常使用。

單元:在java中指的是方法。 一個方法就是一個單元, 方法是測試的最小單位。

作用:使用junit去測試方法是否完成了要求。 開發(fā)人員自測。

使用單元測試:

1)加入junit的依賴(一些類和方法)

 

厲害!一文帶你深入學(xué)習(xí)Maven相關(guān)知識點,理論源碼一套搞定

 

2)在src/test/java 目錄中創(chuàng)建測試類文件。 寫測試代碼

單元測試使用的建議:

? 1. 測試類的定義, 名稱一般是Test+要測試的類名稱

? 2. 測試類它的包名和要測試的類包名一樣。

? 3. 在類中定義方法,要測試代碼。

? 方法的定義:public方法,

? 沒有返回值

? 方法名稱自定義(建議 Test+測試的方法名稱)

? 方法沒有參數(shù)

4.在測試類中的方法,可以單獨執(zhí)行。 測試類也可以單獨執(zhí)行

5.在方法的上面加入@Test

命令:

1) mvn clean: 清理命令, 作用刪除以前生成的數(shù)據(jù), 刪除target目錄。

? 插件: maven-clean-plugin , 版本是 2.5

2)mvn compile:編譯命令,執(zhí)行的代碼編譯, 把src/main/java目錄中的java代碼編譯為class文件。

? 同時把class文件拷貝到 target/classes目錄。 這個目錄classes是存放類文件的根目錄(也叫做類路徑,classpath)

? 插件: maven-compiler-plugin 版本3.1。 編譯代碼的插件

? maven-resources-plugin 版本2.6 。 資源插件, 處理文件的。 作用是把src/main/resources目錄中的

? 文件拷貝target/classes目錄中。

3)mvn test-compile: 編譯命令, 編譯src/test/java目錄中的源文件, 把生成的class拷貝到target/test-classes目錄。同時把src/test/resources目錄中的文件拷貝到 test-clasess目錄

? 插件: maven-compiler-plugin 版本3.1。 編譯代碼的插件

? maven-resources-plugin 版本2.6 。 資源插件, 處理文件的

4)mvn test:測試命令, 作用執(zhí)行 test-classes目錄的程序, 測試src/main/java目錄中的主程序代碼是否符合要求。

? 插件: maven-surefire-plugin 版本 2.12.4

5)mvn package:打包,作用是把項目中的資源class文件和配置文件都放到一個壓縮文件中, 默認壓縮文件是jar類型的。 web應(yīng)用是war類型, 擴展是jar,war的。

? 插件:maven-jar-plugin 版本 2.4。 執(zhí)行打包處理。 生成一個jar擴展的文件, 放在target目錄下.

? 打包的文件包含的是 src/main目錄中的所有的生成的class和配置文件和test無關(guān)。

? 生成的是

ch01-maven-1.0-SNAPSHOT.jar

 

厲害!一文帶你深入學(xué)習(xí)Maven相關(guān)知識點,理論源碼一套搞定

 

6)mvn install : 把生成的打包的文件 ,安裝到maven倉庫。

? 插件: maven-install-plugin 版本 2.4 。 把生成的jar文件安裝到本地倉庫。

? 查看查看中的jar文件:

 

厲害!一文帶你深入學(xué)習(xí)Maven相關(guān)知識點,理論源碼一套搞定

 

7)mvn deploy 部署主程序(會把本工程打包,按照本工程的坐標保存到本地庫中,并且還會保存到私服倉庫中。還會自動把項目部署到 web 容器中)。

2.7 自定義配置插件

在pom.xml文件中, build標簽中。設(shè)置插件

 

厲害!一文帶你深入學(xué)習(xí)Maven相關(guān)知識點,理論源碼一套搞定

 

第三章 Maven和idea的集成

3.1 idea中集成maven

idea中有一個自帶的maven。 我們要讓idea使用自己安裝的maven。

選擇File- Settings

 

厲害!一文帶你深入學(xué)習(xí)Maven相關(guān)知識點,理論源碼一套搞定
厲害!一文帶你深入學(xué)習(xí)Maven相關(guān)知識點,理論源碼一套搞定

 

設(shè)置項: -DarchetypeCatalog=internal

2) File – Other Settings

 

厲害!一文帶你深入學(xué)習(xí)Maven相關(guān)知識點,理論源碼一套搞定

 

同上的設(shè)置

3.2 創(chuàng)建基于maven的普通java項目

 

厲害!一文帶你深入學(xué)習(xí)Maven相關(guān)知識點,理論源碼一套搞定

 

3.3 創(chuàng)建web項目

 

厲害!一文帶你深入學(xué)習(xí)Maven相關(guān)知識點,理論源碼一套搞定

 

3.4 導(dǎo)入module到idea

 

厲害!一文帶你深入學(xué)習(xí)Maven相關(guān)知識點,理論源碼一套搞定

 

第四章 依賴管理

依賴范圍:使用scope表示依賴的范圍。

依賴范圍表示: 這個依賴(jar和里面類)在項目構(gòu)建的那個階段起作用。

依賴范圍scope :

? compile:默認, 參與構(gòu)建項目的所有階段

? test:測試,在測試階段使用, 比如執(zhí)行mvn test會使用junit 。

? provided: 提供者。 項目在部署到服務(wù)器時,不需要提供這個依賴的jar , 而是由服務(wù)器這個依賴的jar包

? 明顯的是servlet 和jsp 依賴

第五章 常用設(shè)置

1)講的是properties它里面的配置

 

厲害!一文帶你深入學(xué)習(xí)Maven相關(guān)知識點,理論源碼一套搞定

 

全局變量

在properties定義標簽,這個標簽就是一個變量, 標簽的文本就是變量的值。

使用全局變量表示 多個依賴使用的版本號。

使用步驟:

1.在properties標簽中,定義一個標簽,指定版本的值

 

厲害!一文帶你深入學(xué)習(xí)Maven相關(guān)知識點,理論源碼一套搞定

 

2.使用全局變量, 語法 ${變量名}

 

厲害!一文帶你深入學(xué)習(xí)Maven相關(guān)知識點,理論源碼一套搞定

 

3)使用資源插件

處理的配置文件的信息, maven默認處理配置文件

①:maven會把src/main/resources目錄中的文件, 拷貝到target/classes目錄下

②:maven只處理src/main/java目錄中的 .java文件,把這些java文件編譯為class,拷貝到 target/classes目錄中。 不處理其他文件。

 

厲害!一文帶你深入學(xué)習(xí)Maven相關(guān)知識點,理論源碼一套搞定

 

好啦,今天的文章就到這里了,希望能夠幫助到屏幕前迷茫的你們

本文由網(wǎng)上采集發(fā)布,不代表我們立場,轉(zhuǎn)載聯(lián)系作者并注明出處:http://m.zltfw.cn/shbk/39798.html

聯(lián)系我們

在線咨詢:點擊這里給我發(fā)消息

微信號:15705946153

工作日:9:30-18:30,節(jié)假日休息