Maven 使用(一)

以前也只是用過(guò)最基本的東西? 現(xiàn)在重新比較系統(tǒng)的學(xué)習(xí)整理一遍

一 :為什么使用Maven

? 1.Maven更好的管理各個(gè)模塊的依賴關(guān)系。

? ? 2.Maven制定了一個(gè)統(tǒng)一的項(xiàng)目層次結(jié)構(gòu)規(guī)范。

? ? 3.Maven統(tǒng)一管理jar包方便


二.Maven是什么

1.Maven是一個(gè)基于項(xiàng)目(Project)對(duì)象(Object) 模型(Model)的自動(dòng)化構(gòu)建工具。

由java編寫,僅適用于java平臺(tái)。

2.什么是"構(gòu)建"

是指在軟件開(kāi)發(fā)過(guò)程中,一個(gè)工程的編譯,部署,搭建等環(huán)節(jié)的全過(guò)程。

最終在服務(wù)器運(yùn)行的是編譯后的結(jié)果。

構(gòu)建中的各個(gè)環(huán)節(jié):

1.清理(clean)

2.編譯(bulid)

3.測(cè)試 (test)

4.報(bào)告 (report)

5.打包 (package)

6.安裝 (install)

7.部署 (deploy)


三.Maven的下載,安裝,驗(yàn)證

1.下載地址:http://maven.apache.org/download.cgi

2.解壓核心包,得到如下目錄結(jié)構(gòu)

3.Maven安裝包目錄結(jié)構(gòu)簡(jiǎn)介

bin:Maven的一些開(kāi)發(fā)可執(zhí)行腳本

boot:Maven的一個(gè)類加載器的框架,相當(dāng)于Maven自己的類庫(kù)

conf:Maven的配置信息文件夾,包含一個(gè)重要的配置文件:settings.xml

lib:Maven運(yùn)行時(shí)所依賴自身和第三方的jar包

LICENSE:Maven的軟件許可證

NOTICE:Maven包含第三方軟件的聲明

README:這個(gè)不用解釋了把(滑稽臉)

4.配置Maven的環(huán)境變量

沒(méi)什么好說(shuō)的,首先你要配置了JAVA_HOME 這個(gè)環(huán)境變量 (也就是要先裝JDK)

然后配置兩個(gè)環(huán)境變量:

M2_HOME(需要自己添加):就是Maven安裝時(shí)的路徑,即bin目錄的上一級(jí)

Path:Maven安裝時(shí)的路徑的下一級(jí), 即bin目錄

然后在控制臺(tái)驗(yàn)證一下是否安裝成功:mvn -v

成功的話顯示如下結(jié)果:

四.Maven的幾個(gè)核心概念

1.目錄結(jié)構(gòu)? ?

2.倉(cāng)庫(kù)

3.坐標(biāo)

4.依賴

5.生命周期/插件/目標(biāo)

6.繼承

7.聚合

8.POM.xml


①:一個(gè)簡(jiǎn)單的maven工程的目錄結(jié)構(gòu):

②Maven的倉(cāng)庫(kù)

倉(cāng)庫(kù):Maven存儲(chǔ)所有項(xiàng)目共享的插件和依賴信息存放的位置。

分為兩大類:

1>本地倉(cāng)庫(kù)

2>遠(yuǎn)程倉(cāng)庫(kù)

2.1>私服:Nexus 設(shè)在當(dāng)前局域網(wǎng)上

2.2>中央倉(cāng)庫(kù):

2.3>中央倉(cāng)庫(kù)的鏡像:各大洲有設(shè) 提高效率

由于maven核心文件不包含 構(gòu)建工程時(shí)用到的插件jar包,所以當(dāng)執(zhí)行maven構(gòu)建命令時(shí),如果本地倉(cāng)庫(kù)找不到,會(huì)聯(lián)網(wǎng)進(jìn)行下載。

本地倉(cāng)庫(kù)默認(rèn)存放在C:\Users\Administrator\.m2\repository ,Administrator 是指當(dāng)前windows系統(tǒng)登錄的用戶。我們可以更改本地倉(cāng)庫(kù)的位置:

1.找到maven 核心安裝包的路徑,打開(kāi)conf下的settings.xml,

(例如我自己是:E:\apache-maven-3.0.5\conf\settings.xml)

2.找到節(jié)點(diǎn)<localRepository>,將他從注釋中剪切到外面,更改他的值與你本地倉(cāng)庫(kù)路徑一致即可? 以后前用戶的Maven本地倉(cāng)庫(kù)就在這里,從遠(yuǎn)程倉(cāng)庫(kù)下載插件時(shí)都會(huì)放到這里。

③常用Maven命令:

mvn clean:清理,相當(dāng)于把之前編譯好的文件刪除

mvn compile:編譯主程序,會(huì)生成target目錄,用來(lái)存放編譯好的文件

mvn test-compile:編譯測(cè)試程序

mvn test:執(zhí)行測(cè)試

mvn package:打包

mvn install:安裝當(dāng)前工程的輸出文件到本地倉(cāng)庫(kù)

④Maven的坐標(biāo)

一個(gè)坐標(biāo)可以對(duì)應(yīng)唯一一個(gè)工程,由三個(gè)基本節(jié)點(diǎn)組成:

groupId:公司或組織域名的倒寫+項(xiàng)目名,也就是\src\main\java 下的路徑(包名)。

artifactId:工程(模塊)名稱

version:工程的版本:分為RELEASE(穩(wěn)定版) 和 SNAPSHOT(快照版),我們一般引用依賴時(shí)最好用穩(wěn)定版

詳細(xì)節(jié)點(diǎn)位置如下:

Maven的依賴

1> Maven解析依賴的信息時(shí)會(huì)到本地倉(cāng)庫(kù)中尋找被依賴的jar包

對(duì)于我們自己開(kāi)發(fā)的Maven工程,使用mvn install 命令 安裝 進(jìn)入本地倉(cāng)庫(kù)。

2> 依賴的常用范圍

? ? 2.1>compile(默認(rèn)):對(duì)主程序有效,對(duì)測(cè)試程序有效,參與打包,參與部署,貫穿構(gòu)建過(guò)程。例(spring-core)

? ? 2.2>test:僅對(duì)測(cè)試程序有效。例(junit 4)

? ? 2.3>provided:僅開(kāi)發(fā)時(shí)有效,不參與打包,不參與部署,因?yàn)榉?wù)器上自帶有該范圍的依賴。例(servlet-api)


⑥Maven的生命周期

maven生命周期僅定義了一個(gè)接口,由插件具體實(shí)現(xiàn)。它有三套相對(duì)獨(dú)立的生命周期,各個(gè)階段有順序,有依賴關(guān)系:

1>Clean Lifecycle:在進(jìn)行真正的構(gòu)建之前進(jìn)行一些清理工作。

2>Default Lifecycle:構(gòu)建的核心部分,編譯,測(cè)試,打包,部署等等。

3>Site Lifecycle:生成項(xiàng)目報(bào)告,站點(diǎn),發(fā)布站點(diǎn)。

五.在eclipse中使用maven

1>設(shè)置Maven插件

Installations:指定Maven核心文件的位置。


User Settings:指定settings.xml文件位置,用來(lái)找到本地倉(cāng)庫(kù)。

2>創(chuàng)建Maven版的java工程,web工程,執(zhí)行Maven命令

2.1>java工程

File-->New-->Maven Project

輸入G和A,打包方式選擇jar,F(xiàn)inish


之后我們?cè)O(shè)置一下全局JDK的版本:

打開(kāi)settings.xml 找到<profiles>標(biāo)簽下添加:

2.2>創(chuàng)建Maven版的Web工程

打包方式那里選擇war即可,其他步驟參照java工程,創(chuàng)建好了我們還需要設(shè)置一下(因?yàn)槿鄙賅EB-INFO 文件夾下的信息)

右鍵項(xiàng)目名--》Properties--》Maven--》Project Facets

去掉紅框中的勾,點(diǎn)Apply,再勾選它

會(huì)出現(xiàn)左下角的信息

點(diǎn)擊進(jìn)去,設(shè)置成如下:

一路OK-->Apply-->OK 即可。最后的結(jié)果如下:

上面有個(gè)圖,但是不知道為啥老是看不到。。。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容