建構基本概念

回報問題 查看來源 Nightly · 8.4 · 8.3 · 8.2 · 8.1 · 8.0 · 7.6

建構系統是工程機構最重要的部分之一,因為每位開發人員每天可能會與建構系統互動數十或數百次。隨著機構擴大規模,您需要功能齊全的建構系統,才能提升開發人員的生產力。對個體戶開發人員而言,編譯程式碼相當簡單,因此建構系統似乎是多餘的。但如果規模較大,建構系統有助於管理共用依附元件,例如依附程式碼庫的其他部分或外部資源 (例如程式庫)。建構系統可確保您擁有建構程式碼所需的一切項目,然後再開始建構。如果建構系統的設定有助於工程師分享資源和結果,也能提高速度。

本節將介紹建構和建構系統的歷史和基礎知識,包括 Bazel 的設計決策。如果您熟悉以構件為基礎的建構系統 (例如 Bazel、Buck 和 Pants),可以略過本節,但這份概覽有助於瞭解以構件為基礎的建構系統為何非常適合用於大規模作業。

  • 為什麼需要建構系統?

    如果您從未使用過建構系統,請從這裡開始。本頁說明為何應使用建構系統,以及當貴機構開始擴大規模,開發人員人數超過幾位時,編譯器和建構指令碼為何不是最佳選擇。

  • 以工作為基礎的建構系統

    本頁面將討論以工作為基礎的建構系統 (例如 Make、Maven 和 Gradle),以及這些系統面臨的部分挑戰。

  • 以構件為基礎的建構系統

    本頁面將討論以構件為基礎的建構系統,解決以工作為基礎的建構系統痛點。

  • 分散式建構

    本頁面說明分散式建構作業,也就是在本機以外執行的建構作業。這需要更強大的基礎架構,才能分享資源及建構結果 (真正的魔法就在這裡發生!)

  • 依附元件管理

    本頁面說明大規模依附元件的一些複雜情況,以及應對這些情況的策略。