Bazel 系統是以長期伺服器處理程序的形式實作。這樣一來
執行批次導向實作無法提供的最佳化工作
例如快取 BUILD 檔案、依附元件圖表,以及
下個單元將深入這能改善漸進式建構的速度,並讓
例如 build
和 query
等不同指令,藉此共用
載入套件,加快查詢速度。
執行 bazel
時,就是在執行用戶端。用戶端找到伺服器
而預設是依據基礎路徑
工作區目錄和使用者 ID,因此如果您在多個工作區中建立建構項目
您也有多個輸出基準,因此能有多個 Bazel 伺服器處理程序。
同一個工作站中的多位使用者可在同一工作站中同時進行建構
工作區,因為兩者的輸出基礎不同 (使用者 ID 不同)。如果
用戶端找不到執行中的伺服器執行個體,只會啟動新的執行個體。伺服器
在閒置一段時間後 (預設為 3 小時,
透過啟動選項 --max_idle_secs
修改)。
在大部分的情況下,雖然伺服器無法識別運作中的伺服器 但在某些情況下,請牢記這一點舉例來說 執行指令碼,在不同目錄中執行大量自動化建構作業。 請務必確保不會累積太多閒置伺服器你 可以在完成後明確關閉 您可以指定較短的逾時期限
Bazel 伺服器程序的名稱會顯示在 ps x
或 ps -e f
的輸出內容中
如同 bazel(dirname)
,其中 dirname 是
。例如:
ps -e f
16143 ? Sl 3:00 bazel(src-johndoe2) -server -Djava.library.path=...
這樣您可以更容易發現哪個伺服器程序屬於給定的
工作區(請注意,與其他 ps
、Bazel 伺服器有關的其他選項也應有限制)
程序只能命名為 java
)。您可以使用
關閉指令。
執行 bazel
時,用戶端會先檢查伺服器是否適當
版本;否則伺服器就會停止運作,新伺服器也會啟動。這可以確保
長時間執行伺服器處理程序不會幹擾適當的
以及版本管理