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