Maven核心功能

一、Maven的常用命令

1辅斟、comopile
compile是maven工程的編譯命令寒跳,作用是將src/main/java下的文件編譯為class文件輸出到target目錄下固逗。

cmd進入命令狀態(tài),執(zhí)行mvn compile皮胡,如下圖提示成功:

image.png

查看 target目錄,class文件已生成赏迟,編譯完成屡贺。

image.png

2、test
test是maven工程的測試命令 mvn test锌杀,會執(zhí)行src/test/java下的單元測試類甩栈。
cmd執(zhí)行mvn test執(zhí)行src/test/java下單元測試類,下圖為測試結(jié)果糕再,運行1個測試用例量没,全部成功。

image.png

3突想、clean
clean是maven工程的清理命令殴蹄,執(zhí)行 clean會刪除target目錄及內(nèi)容。在你進入公司后一般都需要clean一下別人的代碼
4猾担、package
package是maven工程的打包命令袭灯,對于java工程執(zhí)行package打成jar包,對于web工程打成war包绑嘹。
5稽荧、install
install是maven工程的安裝命令,執(zhí)行install將maven打成jar包或war包發(fā)布到本地倉庫工腋。
從運行結(jié)果中姨丈,可以看出:
當(dāng)后面的命令執(zhí)行時,前面的操作過程也都會自動執(zhí)行夷蚊,

二构挤、Maven的生命周期

image.png

執(zhí)行后面的命令的時候前面的命令會自動執(zhí)行,
maven對項目構(gòu)建過程分為三套相互獨立的生命周期惕鼓,請注意這里說的是“三套”筋现,而且“相互獨立”,這三套生命周期分別是:

Clean Lifecycle 在進行真正的構(gòu)建之前進行一些清理工作。
Default Lifecycle 構(gòu)建的核心部分矾飞,編譯一膨,測試,打包洒沦,部署等等豹绪。
Site Lifecycle 生成項目報告,站點申眼,發(fā)布站點瞒津。

三、Maven概念模型圖

image.png

項目對象模型 (Project Object Model)
一個maven工程都有一個pom.xml文件括尸,通過pom.xml文件定義項目的坐標(biāo)巷蚪、項目依賴、項目信息濒翻、插件目標(biāo)等屁柏。

依賴管理系統(tǒng)(Dependency Management System)
通過maven的依賴管理對項目所依賴的jar 包進行統(tǒng)一管理。
比如:項目依賴junit4.9有送,通過在pom.xml中定義junit4.9的依賴即使用junit4.9淌喻,如下所示是junit4.9的依賴定義:

<!-- 依賴關(guān)系 -->
    <dependencies>
        <!-- 此項目運行使用junit,所以此項目依賴junit -->
        <dependency>
            <!-- junit的項目名稱 -->
            <groupId>junit</groupId>
            <!-- junit的模塊名稱 -->
            <artifactId>junit</artifactId>
            <!-- junit版本 -->
            <version>4.9</version>
            <!-- 依賴范圍:單元測試時使用junit -->
            <scope>test</scope>
        </dependency>

一個項目生命周期(Project Lifecycle)
使用maven完成項目的構(gòu)建雀摘,項目構(gòu)建包括:清理裸删、編譯、測試届宠、部署等過程烁落,maven將這些過程規(guī)范為一個生命周期,如下所示是生命周期的各各階段:

image.png

maven通過執(zhí)行一些簡單命令即可實現(xiàn)上邊生命周期的各各過程豌注,比如執(zhí)行mvn compile執(zhí)行編譯伤塌、執(zhí)行mvn clean執(zhí)行清理。

一組標(biāo)準(zhǔn)集合
maven將整個項目管理過程定義一組標(biāo)準(zhǔn)轧铁,比如:通過maven構(gòu)建工程有標(biāo)準(zhǔn)的目錄結(jié)構(gòu)每聪,有標(biāo)準(zhǔn)的生命周期階段、依賴管理有標(biāo)準(zhǔn)的坐標(biāo)定義等齿风。

插件(plugin)目標(biāo)(goal)
maven 管理項目生命周期過程都是基于插件完成的药薯。

四、依賴范圍

A依賴B救斑,需要在A的pom.xml文件中添加B的坐標(biāo)童本,添加坐標(biāo)時需要指定依賴范圍,依賴范圍包括:

compile:編譯范圍脸候,指A在編譯時依賴B穷娱,此范圍為默認(rèn)依賴范圍绑蔫。編譯范圍的依賴會用在編譯、測試泵额、運行配深,由于運行時需要所以編譯范圍的依賴會被打包。

provided:provided依賴只有在當(dāng)JDK或者一個容器已提供該依賴之后才使用嫁盲, provided依賴在編譯和測試時需要篓叶,在運行時不需要,比如:servlet api被tomcat容器提供羞秤。

runtime:runtime依賴在運行和測試系統(tǒng)的時候需要缸托,但在編譯的時候不需要。比如:jdbc的驅(qū)動包瘾蛋。由于運行時需要所以runtime范圍的依賴會被打包嗦董。

test:test范圍依賴 在編譯和運行時都不需要,它們只有在測試編譯和測試運行階段可用瘦黑,比如:junit。由于運行時不需要所以test范圍依賴不會被打包奇唤。

system:system范圍依賴與provided類似幸斥,但是你必須顯式的提供一個對于本地系統(tǒng)中JAR文件的路徑,需要指定systemPath磁盤路徑咬扇,system依賴不推薦使用甲葬。

image.png

在maven-web工程中測試各各scop。

測試總結(jié):

默認(rèn)引入 的jar包 ------- compile 【默認(rèn)范圍 可以不寫】(編譯懈贺、測試经窖、運行 都有效 )
servlet-api 、jsp-api ------- provided (編譯梭灿、測試 有效画侣, 運行時無效 防止和tomcat下jar沖突)
jdbc驅(qū)動jar包 ---- runtime (測試、運行 有效 )
junit ----- test (測試有效)

依賴范圍由強到弱的順序是:compile>provided>runtime>test

五堡妒、工程拆封與聚合

image.png
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末配乱,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子皮迟,更是在濱河造成了極大的恐慌搬泥,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,539評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件伏尼,死亡現(xiàn)場離奇詭異忿檩,居然都是意外死亡,警方通過查閱死者的電腦和手機爆阶,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,594評論 3 396
  • 文/潘曉璐 我一進店門燥透,熙熙樓的掌柜王于貴愁眉苦臉地迎上來沙咏,“玉大人,你說我怎么就攤上這事兽掰“虐” “怎么了?”我有些...
    開封第一講書人閱讀 165,871評論 0 356
  • 文/不壞的土叔 我叫張陵孽尽,是天一觀的道長窖壕。 經(jīng)常有香客問我,道長杉女,這世上最難降的妖魔是什么瞻讽? 我笑而不...
    開封第一講書人閱讀 58,963評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮熏挎,結(jié)果婚禮上速勇,老公的妹妹穿的比我還像新娘。我一直安慰自己坎拐,他們只是感情好烦磁,可當(dāng)我...
    茶點故事閱讀 67,984評論 6 393
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著哼勇,像睡著了一般都伪。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上积担,一...
    開封第一講書人閱讀 51,763評論 1 307
  • 那天陨晶,我揣著相機與錄音,去河邊找鬼帝璧。 笑死先誉,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的的烁。 我是一名探鬼主播褐耳,決...
    沈念sama閱讀 40,468評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼撮躁!你這毒婦竟也來了漱病?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,357評論 0 276
  • 序言:老撾萬榮一對情侶失蹤把曼,失蹤者是張志新(化名)和其女友劉穎杨帽,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體嗤军,經(jīng)...
    沈念sama閱讀 45,850評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡注盈,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,002評論 3 338
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了叙赚。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片老客。...
    茶點故事閱讀 40,144評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡僚饭,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出胧砰,到底是詐尸還是另有隱情鳍鸵,我是刑警寧澤,帶...
    沈念sama閱讀 35,823評論 5 346
  • 正文 年R本政府宣布尉间,位于F島的核電站偿乖,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏哲嘲。R本人自食惡果不足惜贪薪,卻給世界環(huán)境...
    茶點故事閱讀 41,483評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望眠副。 院中可真熱鬧画切,春花似錦、人聲如沸囱怕。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,026評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽娃弓。三九已至庞萍,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間忘闻,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,150評論 1 272
  • 我被黑心中介騙來泰國打工恋博, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留齐佳,地道東北人。 一個月前我還...
    沈念sama閱讀 48,415評論 3 373
  • 正文 我出身青樓债沮,卻偏偏與公主長得像炼吴,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子疫衩,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,092評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 人生真是很奇妙硅蹦,每個人從生到死都是在爬一座山峰,中途你會停下小憩闷煤,思考童芹,抑或積蓄能量。準(zhǔn)備下一次攀登鲤拿。有些人只是陪...
    印子尋閱讀 167評論 0 0