所屬欄目:礦業(yè)論文 發(fā)布日期:2014-06-27 16:59 熱度:
項(xiàng)目作為Maven的基本概念,包含pom.xml的任何一個(gè)文件都是一個(gè)項(xiàng)目,及項(xiàng)目被定義為項(xiàng)目對(duì)象模型。項(xiàng)目之間可以相互依賴,一個(gè)項(xiàng)目也可能由多個(gè)子項(xiàng)目構(gòu)成,另外,項(xiàng)目之間還可以繼承。
【摘要】我們通常將Ant用于java項(xiàng)目的構(gòu)建,編譯、打包等任務(wù)都可以在一個(gè)build.xml中完成,碰到的問(wèn)題也是很多的,比如每個(gè)項(xiàng)目結(jié)構(gòu)的build.xml相差較大等,Maven的出現(xiàn),極大的改觀了這個(gè)問(wèn)題。文章重點(diǎn)介紹了使用Maven管理項(xiàng)目的基本概念。項(xiàng)目對(duì)象模型、依賴管理系統(tǒng)、倉(cāng)庫(kù)與插件構(gòu)成了Maven強(qiáng)大功能的基礎(chǔ)。總結(jié)了Maven在項(xiàng)目管理中的最佳實(shí)踐,從建立統(tǒng)一的項(xiàng)目結(jié)構(gòu)到項(xiàng)目依賴包的管理,以及在Eclipse集成開(kāi)發(fā)環(huán)境中集成、使用Maven的特性。
【關(guān)鍵詞】項(xiàng)目管理論文發(fā)表,Maven,項(xiàng)目,倉(cāng)庫(kù),依賴管理,插件
1Maven概述
什么是Maven?Apache給Maven的定義是:Maven是一個(gè)項(xiàng)目管理工具,由一個(gè)項(xiàng)目對(duì)象模型,一組標(biāo)準(zhǔn)集合,一個(gè)項(xiàng)目生命周期,一個(gè)依賴管理系統(tǒng),以及用來(lái)定義在生命周期階段中插件目標(biāo)的邏輯組成。
2Maven基礎(chǔ)
坐標(biāo)是一個(gè)項(xiàng)目的唯一標(biāo)識(shí),它包括groupId、artifactId和version。groupId定義了項(xiàng)目屬于哪個(gè)組,這個(gè)組往往和項(xiàng)目所在的組織或公司存在關(guān)聯(lián),artifactId定義了當(dāng)前Maven項(xiàng)目在組中唯一的ID,version顧名思義就是當(dāng)前項(xiàng)目的版本。
在Maven中另一個(gè)重要概念就是倉(cāng)庫(kù)(Repository)。因?yàn)樽鴺?biāo)機(jī)制,不同Maven項(xiàng)目使用任何一個(gè)構(gòu)建都是完全相同的。在此基礎(chǔ)上,Maven可以在一個(gè)統(tǒng)一的位置存儲(chǔ)所有Maven項(xiàng)目共享的構(gòu)件,這個(gè)統(tǒng)一的位置就是倉(cāng)庫(kù)。因?yàn)槿魏我粋(gè)構(gòu)件都有其唯一的坐標(biāo),根據(jù)這個(gè)坐標(biāo)可以定義其在倉(cāng)庫(kù)中的唯一存儲(chǔ)路徑,這便是Maven的倉(cāng)庫(kù)布局方式。譬如:groupId=org.testng,artifactId=testng,version=5.8,classifier=jdk15,packaging=jar。生成的路徑:org/testng/testng/5.8/testng-5.8-jdk15.jar。
倉(cāng)庫(kù)的功能是非常強(qiáng)大的,特別是私服,它可以節(jié)省外網(wǎng)帶寬,加速M(fèi)aven構(gòu)建,部署第三方構(gòu)建,提高穩(wěn)定性、增強(qiáng)控制,降低中央倉(cāng)庫(kù)負(fù)荷等。有了倉(cāng)庫(kù)不同的項(xiàng)目不需要再各自包含所依賴的三方庫(kù),倉(cāng)庫(kù)會(huì)自動(dòng)在多個(gè)項(xiàng)目之間共享庫(kù)。此外,不同項(xiàng)目也可以調(diào)用mvninstall產(chǎn)生自己的構(gòu)建件,然后部署到中央倉(cāng)庫(kù)、遠(yuǎn)程倉(cāng)庫(kù)或者私服,其他項(xiàng)目如果有依賴,可以很方便的下載到。
Maven強(qiáng)大的真正原因在于其插件機(jī)制,Maven的核心幾乎不做什么實(shí)際的事情,除了解析一些xml文檔,管理生命周期和插件之外,什么也不懂。其余功能都是委派給一組Maven插件去實(shí)現(xiàn),所以Maven下載很小,在實(shí)際執(zhí)行Maven任務(wù)時(shí),根據(jù)需要自動(dòng)下載相應(yīng)的插件。插件能夠影響Maven的生命周期,提供對(duì)目標(biāo)的訪問(wèn)。Maven插件大部分用java開(kāi)發(fā),同時(shí)也支持BeanShell、Ant編寫的插件,用戶自己也可以編寫專用的插件。
3Maven管理項(xiàng)目的實(shí)踐
3.1標(biāo)準(zhǔn)化的項(xiàng)目結(jié)構(gòu)
定義了項(xiàng)目的標(biāo)準(zhǔn)模版,這是Maven的一個(gè)重要的特性。使用命令行式操作,通過(guò)命令mvnarchetype:create-DgroupId=com.test-DartifactId=test-app,就創(chuàng)建了一個(gè)簡(jiǎn)單的Maven項(xiàng)目,無(wú)需一行腳本,就能實(shí)現(xiàn)眾多功能。同時(shí),Maven還提供了類型模版,通過(guò)添加參數(shù)-DarchetypeArtifactId={類型名}即可完成創(chuàng)建。
3.2類庫(kù)的管理
類庫(kù)管理是Maven的一個(gè)重要特色。在pom.xml中配置好jar包的版本和依賴,能方便實(shí)現(xiàn)對(duì)jar文件的管理。同時(shí)Maven通過(guò)對(duì)pom.xml文件的管理來(lái)處理jar包間的依賴。比如有一個(gè)jar文件為google.jar,同級(jí)目錄必然有一個(gè)和它相關(guān)的pom.xml文件,這個(gè)pom.xml文件肯定配置了google.jar對(duì)其他jar包的依賴。這時(shí)需要我們手動(dòng)去下載依賴包,在執(zhí)行Maven命令時(shí)會(huì)自動(dòng)下載相應(yīng)的依賴包,這叫傳遞性依賴,只需配置對(duì)google的依賴而無(wú)需關(guān)心google對(duì)其他jar的依賴。
由于pom.xml文件對(duì)jar包的管理,使得Maven有一個(gè)特性:項(xiàng)目文件的容量很小。以前一個(gè)web項(xiàng)目里,庫(kù)文件都需要存放到WEB-INF/lib下,同時(shí)存入源代碼庫(kù)中,動(dòng)輒幾十M。通過(guò)Maven管理,僅需要一個(gè)pom.xml,項(xiàng)目文件一般幾百K。
3.3Maven和Eclipse的結(jié)合
Maven和Eclipse的結(jié)合,使得Maven的使用更加方便。這得益于m2eclipse插件,它聯(lián)結(jié)了Eclipse的易用性和Maven的強(qiáng)大功能,從而給Eclipse帶來(lái)了穩(wěn)定的自動(dòng)化構(gòu)建過(guò)程[2]。首先,是和項(xiàng)目創(chuàng)建導(dǎo)入相關(guān)的特性:如從SVN簽出項(xiàng)目、利用預(yù)定義原型為建立項(xiàng)目提供向?qū)Чδ堋F浯危鎰e命令行,根據(jù)菜單、窗口直觀操作。也可以自己組合Maven命令。再次,m2eclipse內(nèi)置中央倉(cāng)庫(kù)檢索功能,不需再通過(guò)瀏覽器訪問(wèn)中央倉(cāng)庫(kù)。最后,m2eclipse提供了對(duì)pom.xml文件的編譯功能,使得依賴包、倉(cāng)庫(kù)、插件等元素的編譯變得更加直觀。
4結(jié)束語(yǔ)
本文主要講述了使用Maven管理項(xiàng)目需要了解的一些基本概念,Maven作為一個(gè)新的項(xiàng)目構(gòu)建工具,簡(jiǎn)單易用,使得項(xiàng)目的構(gòu)建部署不再混亂不堪,整個(gè)過(guò)程更加規(guī)范、有序。然后討論了Maven管理項(xiàng)目的實(shí)踐,如何建立標(biāo)準(zhǔn)化的項(xiàng)目結(jié)構(gòu)、類庫(kù)管理,最后介紹了在Eclipse集成環(huán)境中使用Maven的優(yōu)勢(shì)。
文章標(biāo)題:項(xiàng)目管理論文發(fā)表應(yīng)用Maven簡(jiǎn)化項(xiàng)目管理
轉(zhuǎn)載請(qǐng)注明來(lái)自:http://www.56st48f.cn/fblw/ligong/kuangye/21526.html
攝影藝術(shù)領(lǐng)域AHCI期刊推薦《Phot...關(guān)注:107
Nature旗下多學(xué)科子刊Nature Com...關(guān)注:152
中小學(xué)教師值得了解,這些教育學(xué)...關(guān)注:47
2025年寫管理學(xué)論文可以用的19個(gè)...關(guān)注:192
測(cè)繪領(lǐng)域科技核心期刊選擇 輕松拿...關(guān)注:64
及時(shí)開(kāi)論文檢索證明很重要關(guān)注:52
中國(guó)水產(chǎn)科學(xué)期刊是核心期刊嗎關(guān)注:54
國(guó)際出書需要了解的問(wèn)題解答關(guān)注:58
合著出書能否評(píng)職稱?關(guān)注:48
電信學(xué)有哪些可投稿的SCI期刊,值...關(guān)注:66
通信工程行業(yè)論文選題關(guān)注:73
SCIE、ESCI、SSCI和AHCI期刊目錄...關(guān)注:121
評(píng)職稱發(fā)論文好還是出書好關(guān)注:68
復(fù)印報(bào)刊資料重要轉(zhuǎn)載來(lái)源期刊(...關(guān)注:51
英文期刊審稿常見(jiàn)的論文狀態(tài)及其...關(guān)注:69
Web of Science 核心合集期刊評(píng)估...關(guān)注:59
理工論文范文
建筑設(shè)計(jì)論文 城市規(guī)劃論文 礦業(yè)論文 機(jī)電一體化論文 包裝論文 交通運(yùn)輸論文 化工論文 電力論文 水力論文 自動(dòng)化論文 車輛論文 冶金論文 工業(yè)設(shè)計(jì)論文 機(jī)械論文
SCI期刊分析
copyright © www.56st48f.cn, All Rights Reserved
搜論文知識(shí)網(wǎng) 冀ICP備15021333號(hào)-3