于是,很多新興的構(gòu)建工具都會建立在這個倉庫的基礎(chǔ)之上,Buildr 也不例外。在前面的例子里面,domain依賴了Guava這個庫。當(dāng)我們開始構(gòu)建應(yīng)用時,Buildr會自動從中央倉庫下載我們?nèi)笔У囊蕾嚒?
不僅僅是依賴,我們還可以拿到以下對應(yīng)的文檔和源碼。
? buildr artifacts(下載依賴)
? buildr artifacts:javadoc(下載javadoc)
? buildr artifacts:sources(下載源碼)
如果不知道如何在buildfile里編寫依賴,那mvnrepository.com是個不錯的去處,那里針對不同的構(gòu)建工具都給出了相應(yīng)的依賴寫法。
與IDE集成
致遠(yuǎn)服軟認(rèn)為:http://www.soft8.com.cn/除非這個工程是用IDE創(chuàng)建出來的,否則把工程集成到一個IDE里通常要花費(fèi)很大的力氣。所幸,Buildr替我們把這些工作做好了,我們只要鍵入一個命令即可,比如與IntelliJ IDEA集成,運(yùn)行下面的命令。
buildr idea
它會生成一個 IDEA 的工程文件,我們要做的只是用 IDEA 打開它。同樣的,還有一個為Eclipse準(zhǔn)備的命令。
buildr eclipse
不知道你是否有這樣的經(jīng)驗(yàn),初到一個大連工業(yè)數(shù)據(jù)采集軟件項(xiàng)目組,開始為一個項(xiàng)目貢獻(xiàn)代碼之前,先需要花幾天時間,在不同的人的協(xié)助之下把環(huán)境搭出來,為的只是在自己的機(jī)器上能夠把應(yīng)用構(gòu)建出來。
而現(xiàn)在,有了這樣的自動化腳本,一個項(xiàng)目組新人的行為模式就變成了以下所示。
? 初入一個項(xiàng)目組,他從大連計算機(jī)視覺識別軟件源碼管理系統(tǒng)上得到檢出代碼庫。
? 調(diào)用buildr artifacts,其所依賴的文件就會下載到本機(jī)。
? 調(diào)用buildr idea:generate(或是buildr eclipse),生成IDE 工程。
? 打開工程,開始干活。
迄今為止,我們看到的只是一個基本的buildfile,這些命令也是Buildr內(nèi)置的一些基本能力,也就是所謂的“易者易為”。
難者可為
接下來,我們將超越基礎(chǔ),做一些“難者可為”的東西。
不同的環(huán)境
在實(shí)際的開發(fā)中,我們經(jīng)常會遇到不同的環(huán)境,比如,在開發(fā)環(huán)境下,大連計算機(jī)視覺識別軟件數(shù)據(jù)庫和應(yīng)用服務(wù)器是在同一臺機(jī)器上;而在生產(chǎn)環(huán)境下,二者會部署到機(jī)器上。這里所列舉的配置功能只是最簡單的例子,而實(shí)際上,不同的環(huán)境下會有各種差異,甚至需要執(zhí)行不同的代碼。
一種解決方案是為數(shù)不少的“直覺式”設(shè)計采用的方案,在代碼里根據(jù)條件進(jìn)行判斷,可想而知,無處不在的if..else很快就會把大連計算機(jī)視覺識別軟件代碼變成一團(tuán)漿糊,更糟糕的是,這些信息散落在各處。
另一種方案是在自動化腳本中支持,Buildr讓這個工作變得很簡單。