【正文】
設(shè)置Maven倉庫1. 介紹Maven是Java開發(fā)者中流行的構(gòu)建工具,Maven的好處之一是可以幫助減少構(gòu)建應(yīng)用程序時(shí)所依賴的軟件構(gòu)件的副本,Maven建議的方法是將所有軟件構(gòu)件存儲(chǔ)于一個(gè)叫做repository的遠(yuǎn)程倉庫中。,這個(gè)公用倉庫下載緩慢、不穩(wěn)定,并且不包含一些構(gòu)件的最新版本,而且不能上傳團(tuán)隊(duì)私有的構(gòu)件。通過設(shè)置內(nèi)部Maven倉庫,團(tuán)隊(duì)可以更有好地利用Maven倉庫的優(yōu)勢并且克服使用ibiblio上的倉庫時(shí)的缺點(diǎn)。本文著眼于Maven倉庫工具應(yīng)提供的一些功能,列出了選擇Maven倉庫工具的標(biāo)準(zhǔn),說明了使用Artifactory設(shè)置Maven倉庫的相關(guān)步驟。在Linux和Windows中設(shè)置Maven倉庫的過程是相同的,少數(shù)不同點(diǎn)在文中已經(jīng)用高亮顯示,本文列出了與這個(gè)Maven倉庫的使用有關(guān)的POM文件的范例,用截圖來向用戶闡述如何設(shè)置Maven倉庫,Maven和artifactory配置范例也有列出。 背景知識(shí)本文假定讀者熟悉以下的概念和技術(shù):l Maven 2 l J2EE web 服務(wù)器部署過程(. 在Tomcat中部署Web應(yīng)用程序) l XML Maven倉庫的目的 Maven倉庫的目的是作為團(tuán)隊(duì)內(nèi)所使用的所有軟件構(gòu)件的內(nèi)部私有構(gòu)件倉庫,將Maven構(gòu)件(jar和pom)存儲(chǔ)到一個(gè)專門的Maven倉庫比將它們存儲(chǔ)到版本控制系統(tǒng)中更有優(yōu)勢,這是因?yàn)椋簂 構(gòu)件(jar)是二進(jìn)制文件,不屬于版本控制系統(tǒng),版本控制系統(tǒng)在處理文本文件方面比較好l 保持較小的版本控制數(shù)據(jù)庫l Checkout、update和其他版本控制的操作可以更快 建立內(nèi)部私有倉庫的優(yōu)勢: l 減少可能的版本沖突 l 減少首次構(gòu)建時(shí)需要的手動(dòng)干涉 l 中央倉庫包含所有依賴的軟件構(gòu)件,引用單一的中央倉庫比引用多個(gè)獨(dú)立的本地庫要好 l 使用內(nèi)部倉庫做clean構(gòu)建時(shí)會(huì)快些,因?yàn)镸aven構(gòu)件是從內(nèi)部服務(wù)器而不是從因特網(wǎng)上的ibiblio服務(wù)器獲取。 Maven構(gòu)件庫的類型 l 本地倉庫——位于開發(fā)者的機(jī)器,由開發(fā)者維護(hù),它從位于‘~home/.m2’ 目錄的‘’文件中定義的Maven倉庫上同步, 上的公用Maven倉庫上同步。 l 內(nèi)部私有遠(yuǎn)程倉庫——這是我們將要設(shè)置的倉庫,我們將改變maven 。 l 外部公用遠(yuǎn)程倉庫——,默認(rèn)情況下,Maven從這個(gè)倉庫上同步。 l 沒有Maven倉庫下的開發(fā)環(huán)境 具有團(tuán)隊(duì)內(nèi)部遠(yuǎn)程倉庫的開發(fā)環(huán)境3. 本教程Maven倉庫的用例介紹l 在內(nèi)部倉庫中創(chuàng)建2個(gè)子庫 l Ibiblio 緩存‘Ibibliocache’ ——,可以公開訪問,它將從外部的ibiblio倉庫中同步 l 內(nèi)部倉庫internalmavenrepository——用于存儲(chǔ)團(tuán)隊(duì)內(nèi)部的構(gòu)件,它不與任何外部倉庫同步,是團(tuán)隊(duì)專有的構(gòu)件庫 l 可以創(chuàng)建另一個(gè)子倉庫,這是可選的,用于存儲(chǔ)那些公用的但是在ibiblio上暫時(shí)沒有的構(gòu)件,例如一些構(gòu)件的新最版本,這個(gè)倉庫不與內(nèi)部倉庫同步。我們可以稱它為第三方‘3rdparty’l 瀏覽遠(yuǎn)程庫,最好是通過一個(gè)web瀏覽器l 在倉庫中搜索構(gòu)件 l 從版本控制系統(tǒng)中下載代碼,l 向倉庫中安裝一個(gè)構(gòu)件的新版本l 向倉庫中大批導(dǎo)入構(gòu)件l 從倉庫中大批導(dǎo)出構(gòu)件l 手動(dòng)備份倉庫,設(shè)置定時(shí)自動(dòng)備份任務(wù)4. Maven倉庫工具的選擇標(biāo)準(zhǔn)理想的Maven倉庫工具應(yīng)該:l 開放源碼并且免費(fèi) l 提供管理工具 l 提供倉庫瀏覽器——最好是web瀏覽器而不是桌面應(yīng)用程序 l 可以部署到標(biāo)準(zhǔn)web服務(wù)器中——例如Apache或Tomcat l 創(chuàng)建、編輯、刪除子庫的能力 l 批量導(dǎo)入/導(dǎo)出的工具,用來向構(gòu)件庫或從構(gòu)件庫移動(dòng)構(gòu)件 l 訪問控制工具和匿名只讀訪問 l 安裝和使用簡單 l 備份功能 l 問題追蹤,論壇或其他獨(dú)立的信息來源 l 活躍的社區(qū)/開發(fā)者,這樣產(chǎn)品才能改進(jìn),bug才能修正5. 不同Maven倉庫工具的比較一些流行且免費(fèi)的Maven倉庫工具有:l 標(biāo)準(zhǔn)Maven代理codehaus—— l Proximity 下面列出了一個(gè)比較:codehausDSMPProximityArtifactory管理工具否基本是是構(gòu)件庫瀏覽器基本否是是部署到標(biāo)準(zhǔn)Web服務(wù)器是,但不可配置否是是(與Jetty綁定,支持Tomcat)子庫管理是是是是批量導(dǎo)入/導(dǎo)出構(gòu)件否否否是安裝使用簡單是是(從代碼構(gòu)建)是是(AJAX界面)備份功能否否否是(使用quartz和cron表達(dá)式)問題追蹤JIRA,IRC否Wiki issues TrackerJira issues Tracker(良好的