經(jīng)過5年的不懈努力,Twitter于近日發(fā)布了構(gòu)建工具Pants的里程碑版本1.0。Pants與Maven、Gradle以及Ant等流行的構(gòu)建系統(tǒng)定位相似,不同的是它支持C/C++、Java、Python和Scala等語言。Twitter將可伸縮性需求作為驅(qū)動Pants向前發(fā)展的動力。
該版本包含的一些特性包括:
更簡單的安裝流程(詳細信息見下面介紹) 重新定義的、一致的棄用策略之所以開始開發(fā)Pants,是因為Twitter發(fā)現(xiàn)他們所使用的構(gòu)建工具并不能隨著增長的需要而進行擴展。經(jīng)過了兩年多的開發(fā)和內(nèi)部使用之后,Twitter將Pants貢獻給了開源社區(qū)。
Pants通過一個獨立的大型倉庫(也稱為“monorepo”)應(yīng)對代碼維護的挑戰(zhàn)。如果版本控制系統(tǒng)和構(gòu)建工具并不能隨著業(yè)務(wù)的增長而進行擴展,那么一次復(fù)雜構(gòu)建的性能就會快速下降。通過利用細粒度的依賴管理、并行任務(wù)執(zhí)行以及增量編譯等特性Pants能夠構(gòu)建一個大型的monorepo。而很多其他流行的構(gòu)建系統(tǒng)并不是為這一目標(biāo)而設(shè)計的。
Pants能夠被集成到已有的Java項目中,因為它能夠識別出標(biāo)準(zhǔn)的源代碼和測試目錄命名約定,例如Gradle的src/main/java和src/test/java。對于有興趣從Maven遷移到Pants上的開發(fā)者而言,可以查看Twitter網(wǎng)站上的說明。而IntelliJ IDEA用戶則能夠體驗Pants插件。
Pants可以被安裝到任何新的或者已有項目的根文件夾下,命令如下:
curl -L -O https://pantsbuild.github.io/setup/pants && chmod +x pants && touch pants.ini該安裝會自動建立一個具有合適權(quán)限的、能夠在本地執(zhí)行的Pants,同時還會創(chuàng)建一個空的待編輯文件pants.ini。