maven

maven是什么?

Maven是一個(gè)跨平臺(tái)的項(xiàng)目管理工具朝扼,主要服務(wù)于基于Java平臺(tái)的項(xiàng)目構(gòu)建依賴管理項(xiàng)目信息管理丑瞧。

  • 依賴管理,根據(jù)坐標(biāo)從倉(cāng)庫(kù)中尋找構(gòu)件蜀肘。
  • 構(gòu)建(build)工具绊汹,maven抽象了構(gòu)建生命周期并為絕大部分構(gòu)建任務(wù)提供了已實(shí)現(xiàn)的插件。
  • 項(xiàng)目信息管理
一扮宠、倉(cāng)庫(kù)

maven根據(jù)坐標(biāo)尋找構(gòu)件流程
當(dāng)maven根據(jù)坐標(biāo)尋找構(gòu)件時(shí)西乖,首先會(huì)去本地倉(cāng)庫(kù)查看是否存在該構(gòu)件,若本地倉(cāng)庫(kù)已經(jīng)存在該構(gòu)件坛增,則直接使用获雕;若本地倉(cāng)庫(kù)不存在該構(gòu)件,則需要去遠(yuǎn)程倉(cāng)庫(kù)查找此構(gòu)件收捣,在遠(yuǎn)程倉(cāng)庫(kù)中查找到該構(gòu)件后典鸡,需要將其下載到本地倉(cāng)庫(kù)后再使用。如果本地倉(cāng)庫(kù)和遠(yuǎn)程倉(cāng)庫(kù)都沒(méi)有該構(gòu)件坏晦,則maven會(huì)報(bào)錯(cuò)萝玷。

坐標(biāo):groupId, artifactId, version三個(gè)元素定義了一個(gè)項(xiàng)目的基本坐標(biāo)

<groupId>com.example</groupId>
<artifactId>hello-spring-boot-starter-provider</artifactId>
<version>0.0.1-SNAPSHOT</version>

構(gòu)件:jar包等

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

安裝maven后嫁乘,在不執(zhí)行任何maven命令前,不存在本地倉(cāng)庫(kù)目錄球碉。當(dāng)用戶執(zhí)行第一條maven命令后蜓斧,會(huì)在用戶目錄下.m2/repository/創(chuàng)建本地倉(cāng)庫(kù)。

若希望自定義本地倉(cāng)庫(kù)目錄睁冬,可以在pom.xml中進(jìn)行如下配置挎春。

<settings>
  <localRepository>D://install//localres</localRepository>
</settings>
2. 遠(yuǎn)程倉(cāng)庫(kù)

中央倉(cāng)庫(kù)是maven默認(rèn)的遠(yuǎn)程倉(cāng)庫(kù),maven的安裝文件中自帶了中央倉(cāng)庫(kù)的配置豆拨,其id為centeral直奋。

私服是一種特殊的遠(yuǎn)程倉(cāng)庫(kù),它是架設(shè)在局域網(wǎng)內(nèi)的倉(cāng)庫(kù)服務(wù)施禾,它代理廣域網(wǎng)上的遠(yuǎn)程倉(cāng)庫(kù)脚线,為局域網(wǎng)內(nèi)的maven用戶提供服務(wù)。當(dāng)maven下載構(gòu)件時(shí)弥搞,先去私服上查找該構(gòu)件邮绿,若私服上沒(méi)有該構(gòu)件,則從遠(yuǎn)程倉(cāng)庫(kù)下載構(gòu)件緩存至私服攀例,再為maven用戶的下載請(qǐng)求提供服務(wù)船逮。

若希望配置遠(yuǎn)程倉(cāng)庫(kù),可以在pom.xml中進(jìn)行如下配置粤铭。

<repositories>
    <repository>
        <id>central</id>
        <name>libs-releases</name>
        <url></url>
        <snapshots>
            <enabled>false</enabled>
        </snapshots>
    </repository>
    <repository>
        <id>snapshots</id>
        <name>libs-snapshots</name>
        <url></url>
        <snapshots />
    </repository>
</repositories>

大部分遠(yuǎn)程倉(cāng)庫(kù)無(wú)需認(rèn)證即可訪問(wèn)挖胃,但有時(shí)出于安全考慮,我們需要認(rèn)證信息才能訪問(wèn)一些遠(yuǎn)程倉(cāng)庫(kù)梆惯」诮荆可以在pom.xml中進(jìn)行如下配置來(lái)配置倉(cāng)庫(kù)認(rèn)證信息

<servers>
    <server>
        <id></id>
        <username></username>
        <password></password>
    </server>
</servers>
3. 鏡像

如果倉(cāng)庫(kù)X能夠提供倉(cāng)庫(kù)Y存儲(chǔ)的所有內(nèi)容加袋,那么就可以認(rèn)為X是Y的一個(gè)鏡像凛辣。

在pom.xml中進(jìn)行如下配置,可以使用阿里云鏡像代替中央倉(cāng)庫(kù)职烧。

<mirrors>
    <mirror>
        <id>alimaven</id>
        <name>aliyun maven</name>
        <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
        <mirrorOf>central</mirrorOf>
    </mirror> 
</mirrors>
二扁誓、生命周期和插件
階段 處理 描述
驗(yàn)證 validate 驗(yàn)證項(xiàng)目 驗(yàn)證項(xiàng)目是否正確且所有必須信息是可用的
編譯 compile 執(zhí)行編譯 源代碼編譯在此階段完成
測(cè)試 Test 測(cè)試 使用適當(dāng)?shù)膯卧獪y(cè)試框架(例如JUnit)運(yùn)行測(cè)試。
包裝 package 打包 創(chuàng)建JAR/WAR包如在 pom.xml 中定義提及的包
檢查 verify 檢查 對(duì)集成測(cè)試的結(jié)果進(jìn)行檢查蚀之,以保證質(zhì)量達(dá)標(biāo)
安裝 install 安裝 安裝打包的項(xiàng)目到本地倉(cāng)庫(kù)蝗敢,以供其他項(xiàng)目使用
部署 deploy 部署 拷貝最終的工程包到遠(yuǎn)程倉(cāng)庫(kù)中,以共享給其他開(kāi)發(fā)人員和工程
  • package命令完成了項(xiàng)目編譯足删、單元測(cè)試寿谴、打包功能,但沒(méi)有把打好的可執(zhí)行jar包(war包或其它形式的包)布署到本地maven倉(cāng)庫(kù)和遠(yuǎn)程maven私服倉(cāng)庫(kù)失受;
  • install命令完成了項(xiàng)目編譯讶泰、單元測(cè)試咏瑟、打包功能,同時(shí)把打好的可執(zhí)行jar包(war包或其它形式的包)布署到本地maven倉(cāng)庫(kù)痪署,但沒(méi)有布署到遠(yuǎn)程maven私服倉(cāng)庫(kù)码泞;
  • deploy命令完成了項(xiàng)目編譯、單元測(cè)試狼犯、打包功能余寥,同時(shí)把打好的可執(zhí)行jar包(war包或其它形式的包)布署到本地maven倉(cāng)庫(kù)和遠(yuǎn)程maven私服倉(cāng)庫(kù)

Maven 有以下三個(gè)標(biāo)準(zhǔn)的生命周期:

  • clean:項(xiàng)目清理的處理
  • default(或 build):項(xiàng)目部署的處理
  • site:項(xiàng)目站點(diǎn)文檔創(chuàng)建的處理
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末悯森,一起剝皮案震驚了整個(gè)濱河市宋舷,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌瓢姻,老刑警劉巖祝蝠,帶你破解...
    沈念sama閱讀 219,270評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異汹来,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)改艇,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,489評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門收班,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人谒兄,你說(shuō)我怎么就攤上這事摔桦。” “怎么了承疲?”我有些...
    開(kāi)封第一講書人閱讀 165,630評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵邻耕,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我燕鸽,道長(zhǎng)兄世,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書人閱讀 58,906評(píng)論 1 295
  • 正文 為了忘掉前任啊研,我火速辦了婚禮御滩,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘党远。我一直安慰自己削解,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,928評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布沟娱。 她就那樣靜靜地躺著氛驮,像睡著了一般。 火紅的嫁衣襯著肌膚如雪济似。 梳的紋絲不亂的頭發(fā)上矫废,一...
    開(kāi)封第一講書人閱讀 51,718評(píng)論 1 305
  • 那天盏缤,我揣著相機(jī)與錄音,去河邊找鬼磷脯。 笑死蛾找,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的赵誓。 我是一名探鬼主播打毛,決...
    沈念sama閱讀 40,442評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼俩功!你這毒婦竟也來(lái)了幻枉?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書人閱讀 39,345評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤诡蜓,失蹤者是張志新(化名)和其女友劉穎熬甫,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體蔓罚,經(jīng)...
    沈念sama閱讀 45,802評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡椿肩,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,984評(píng)論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了豺谈。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片郑象。...
    茶點(diǎn)故事閱讀 40,117評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖茬末,靈堂內(nèi)的尸體忽然破棺而出厂榛,到底是詐尸還是另有隱情,我是刑警寧澤丽惭,帶...
    沈念sama閱讀 35,810評(píng)論 5 346
  • 正文 年R本政府宣布击奶,位于F島的核電站,受9級(jí)特大地震影響责掏,放射性物質(zhì)發(fā)生泄漏柜砾。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,462評(píng)論 3 331
  • 文/蒙蒙 一换衬、第九天 我趴在偏房一處隱蔽的房頂上張望局义。 院中可真熱鬧,春花似錦冗疮、人聲如沸萄唇。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 32,011評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)另萤。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間四敞,已是汗流浹背泛源。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 33,139評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留忿危,地道東北人达箍。 一個(gè)月前我還...
    沈念sama閱讀 48,377評(píng)論 3 373
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像铺厨,于是被迫代替她去往敵國(guó)和親缎玫。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,060評(píng)論 2 355