1
在Bazel User Manual美國--stamp
文檔:如何強制巴澤爾郵票的所有二進制文件?
指定--stamp並不強制受影響的目標進行重建,如果他們的依賴關係並沒有改變。
是否有辦法強制建立受影響的目標,以便所有輸出二進制文件具有相同的印記,即使它們的依賴關係沒有改變?
具體的使用案例是,我正在構建大量相關的Go二進制文件(使用rules_go),並且我想用相同的版本號(可從最新的git commit hash中獲取) 。我可以事先做一個bazel clean
,但這有點擊敗使用Bazel的點:)
謝謝!
爲什麼你需要他們是最新版本? – Ittai
我們實際上必須努力工作,不要重建所有東西只是爲了蓋上它,因爲它不會擴展並會破壞緩存。這可以解決在不同的水平,而不是在bazel? – mhlopko
我們需要他們都是最新版本,因爲其他工具依賴於此。這適用於我們的集成環境,它應該反映'master'分支的最新狀態。每個構建二進制文件的buildstamp應該是'master'的git commit哈希。不幸的是,如果他們在不同的二進制文件中看到不同的構建標記,其他工具和開發人員會感到困惑。 可能的解決方法是刪除所有的二進制文件並重建它們:'bazel clean $(bazel query'kind(「go_binary rule」,// ...)')'後面跟着'bazel build'。 – user2514169