最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

項目管理利器-Maven倉庫及Maven常用命令講解

2021-03-09 17:19 作者:動力節(jié)點小王本王  | 我要投稿



本篇文章主要內(nèi)容:

倉庫

Maven的生命周期

Maven的常用命令

練習maven?命令

倉庫的概念

現(xiàn)在我們對maven工程有一個大概的認識了,那現(xiàn)在思考一個問題, maven怎么就這么神奇,我們寫完的工程交給他之后,他就能夠自動幫我們管理,我們依賴的jar包它從哪兒獲取呢?

有同學說已經(jīng)安裝了,在它的安裝包里啊,大家可以看一下maven下載下來才8M,我們需要的jar包有時候都幾百兆甚至幾個G,它從哪兒弄去呢?其實,maven有倉庫的概念。

在Maven中,任何一個依賴、插件或者項目構(gòu)建的輸出,都可以稱之為構(gòu)件。Maven核心程序僅僅定義了自動化構(gòu)建項目的生命周期,但具體的構(gòu)建工作是由特定的構(gòu)件完成的。而且為了提高構(gòu)建的效率和構(gòu)件復用,maven把所有的構(gòu)件統(tǒng)一存儲在某一個位置,這個位置就叫做倉庫。

倉庫存什么?

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

1. Maven 的插件,插件也是一些jar,這些 jar 可以完成一定的功能。

2.我們自己開發(fā)項目的模塊

3.?第三方框架或工具的 jar 包

倉庫的類別

根據(jù)倉庫存儲的位置,把倉庫分為本地倉庫和遠程倉庫。

本地倉庫:

存在于當前電腦上,默認存放在~\.m2\repository中,為本機上所有的Maven工程服務。你也可以通過Maven的配置文件Maven_home/conf/settings.xml中修改本地倉庫所在的目錄。~ 是用戶的主目錄,windows系統(tǒng)中是 c:/user/登錄系統(tǒng)的用戶名

遠程倉庫:

分為為全世界范圍內(nèi)的開發(fā)人員提供服務的中央倉庫、為全世界范圍內(nèi)某些特定的用戶提供服務的中央倉庫鏡像、為本公司提供服務自己架設的私服。中央倉庫是maven默認的遠程倉庫,其地址是:http://repo.maven.apache.org/maven2/

中央倉庫包含了絕大多數(shù)流行的開源Java構(gòu)件,以及源碼、作者信息、許可證信息等。一般來說,簡單的Java項目依賴的構(gòu)件都可以在這里下載得到。

私服是一種特殊的遠程倉庫,它是架設在局域網(wǎng)內(nèi)的倉庫服務,私服代理廣域網(wǎng)上的遠程倉庫,供局域網(wǎng)內(nèi)的Maven用戶使用。當Maven需要下載構(gòu)件的時候,它從私服請求,如果私服上不存在該構(gòu)件,則從外部的遠程倉庫下載, 緩存在私服上之后,再為Maven的下載請求提供服務。我們還可以把一些無法從外部倉庫下載到的構(gòu)件上傳到私服上。

分類說明:

1)?本地倉庫:本機當前電腦上的資源存儲位置,為本機上所有 Maven工程提供服務

2)?遠程倉庫不在本機上, 通過網(wǎng)絡才能使用。多電腦共享使用的。

①:中央倉庫:通過Internet訪問,為全世界所有 Maven工程服務。 最權(quán)威的。

②:中央倉庫的鏡像:架設在不同位置,歐洲,美洲,亞洲等每個洲都有若干的服務器,為中央倉庫分擔流量。減輕中央倉庫的訪問,下載的壓力。所在洲的用戶首先訪問的是本洲的鏡像服務器。

③:私服:在局域網(wǎng)環(huán)境中部署的服務器,為當前局域網(wǎng)范圍內(nèi)的所有 Maven工程服務。公司中常常使用這種方式。

Maven?對倉庫的使用

在Maven 構(gòu)建項目的過程中如果需要某些插件,首先會到Maven 的本地倉庫中查找,如果找到則可以直接使用;如果找不到,它會自動連接外網(wǎng),到遠程中央倉庫中查找;如果遠程倉庫中能找到,則先把所需要的插件下載到本地倉庫,然后再使用,并且下次再用到相同的插件也可以直接使用本地倉庫的;如果沒有外網(wǎng)或者遠程倉庫中也找不到,則構(gòu)建失敗。

資源搜索地址:https://mvnrepository.com/

Maven?的生命周期

對項目的構(gòu)建是建立在生命周期模型上的,它明確定義項目生命周期各個階段,并且對于每一個階段提供相對應的命令,對開發(fā)者而言僅僅需要掌握一小堆的命令就可以完成項目各個階段的構(gòu)建工作。

構(gòu)建項目時按照生命周期順序構(gòu)建,每一個階段都有特定的插件來完成。不論現(xiàn)在要執(zhí)行生命周期中的哪個階段,都是從這個生命周期的最初階段開始的。

對于我們程序員而言,無論我們要進行哪個階段的構(gòu)建,直接執(zhí)行相應的命令即可,無需擔心它前邊階段是否構(gòu)建,Maven 都會自動構(gòu)建。這也就是Maven 這種自動化構(gòu)建工具給我們帶來的好處。

Maven?的常用命令

Maven 對所有的功能都提供相對應的命令,要想知道m(xù)aven 都有哪些命令,那要看maven 有哪些功能。

一開始就跟大家說了,maven 三大功能:管理依賴、構(gòu)建項目、管理項目信息。

管理依賴,只需要聲明就可以自動到倉庫下載;管理項目信息其實就是生成一個站點文檔,一個命令就可以解決,最后再說;那maven 功能的主體其實就是項目構(gòu)建。

Maven 提供一個項目構(gòu)建的模型,把編譯、測試、打包、部署等都對應成一個個的生命周期階段,并對每一個階段提供相應的命令,程序員只需要掌握一小堆命令,就可以完成項目的構(gòu)建過程。

mvn clean清理(會刪除原來編譯和測試的目錄,即target 目錄,但是已經(jīng)install 到倉庫里的包不會刪除)

mvn compile?編譯主程序(會在當前目錄下生成一個target,里邊存放編譯主程序之后生成的字節(jié)碼文件)

mvn test-compile編譯測試程序(會在當前目錄下生成一個target,里邊存放編譯測試程序之后生成的字節(jié)碼文件)

mvn test 測試(會生成一個目錄surefire-reports,保存測試結(jié)果) mvn package

打包主程序(會編譯、編譯測試、測試、并且按照pom.xml 配置把主程序打包生成jar 包或者 war 包)

mvn install 安裝主程序(會把本工程打包,并且按照本工程的坐標保存到本地倉庫中)

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

注意:執(zhí)行以上命令必須在命令行進入pom.xml 所在目錄!

練習maven?命令

以第一個maven 項目為例,進入到Hello 目錄中執(zhí)行maven 各種命令。

1.?準備工作,pom.xml?添加依賴

<dependencies>

<!-- 單元測試 -->

<dependency>

<groupId>junit</groupId>

<artifactId>junit</artifactId>

<version>4.11</version>

</dependency>

</dependencies>

2.?在Hello/src/test/目錄下創(chuàng)建 java?, resources?目錄

3.?在Hello/src/test/java?目錄下,創(chuàng)建 com/bjpowernode/目錄

4.?在 com/bjpowernode/目錄中創(chuàng)建 MyTest.java?文件導入類:

import org.junit.Assert; import org.junit.Test;

定義方法

public class MyTest { @Test

public void testAddNumber(){

System.out.println("執(zhí)行HelloMaven 類addNumber()方法"); int n1 = 10;

int n2 = 20; int res = 0;

HelloMaven hello =new HelloMaven(); res = hello.addNumber(n1,n2);

// 期望值,實際值A(chǔ)ssert.assertEquals(30,res);

}

}

5.?執(zhí)行先執(zhí)行 mvn?compile?,觀察目錄結(jié)構(gòu)的變化,生成target?目錄6.在執(zhí)行 mvn?clean, 觀察taget?目錄被清除

7.?執(zhí)行 mvn?compile

8.?進入 taget/classes?目錄執(zhí)行 java?com.bjpowernode.HelloMaven

9.?進入Hello?目錄,執(zhí)行mvn?test-compile?生成test-target?測試編譯后的目錄

10.?進入Hello?目錄,執(zhí)行mvn?test?執(zhí)行 MyTest?類中方法,生成測試報告11.進入目錄 surefire-reports,查看測試報告

12.?修改 MyTest.java, 增加測試方法@Test

public void testAddNumber2(){

System.out.println("執(zhí)行HelloMaven?類addNumber()方法"); int n1 = 20;

int n2 =?30;


int res = 0;

HelloMaven hello =new HelloMaven(); res = hello.addNumber(n1,n2);

// 期望值,實際值A(chǔ)ssert.assertEquals(60,res);

}

13.?進入Hello?目錄,執(zhí)行mvn?test-compile

14.?進入Hello?目錄,執(zhí)行mvn?test

15.?修改testAddNumber2()方法中 60?為 50

16.?進入Hello?目錄,執(zhí)行mvn package?,生成 xxx.jar?文件,這就是所說的打包

17.?進入Hello?目錄,執(zhí)行mvn?install?, 把xxx.jar?文件安裝到本地maven 倉庫,安裝成功后查看倉庫中的jar?文件


最后奉上視頻教程??,視頻觀看效果更佳!!走過路過別忘素質(zhì)三連哦~~


項目管理利器-Maven倉庫及Maven常用命令講解的評論 (共 條)

分享到微博請遵守國家法律
沂南县| 平江县| 始兴县| 通州区| 雷波县| 乌拉特中旗| 闵行区| 盐津县| 农安县| 磐安县| 烟台市| 饶平县| 涞源县| 万山特区| 公主岭市| 株洲县| 仲巴县| 喀什市| 德安县| 塔河县| 左权县| 宁都县| 大港区| 东乡族自治县| 会理县| 洛川县| 桐乡市| 伊金霍洛旗| 梧州市| 信丰县| 阿拉善左旗| 那曲县| 铜川市| 湟中县| 娄烦县| 七台河市| 陆川县| 法库县| 卢龙县| 白山市| 栾川县|