Tool之Bazel:Bazel的簡介、安裝、使用方法之詳細攻略
Tool之Bazel:Bazel的簡介、安裝、使用方法之詳細攻略
目錄
Bazel的簡介
Bazel的安裝
Bazel的使用方法
Bazel的簡介
Bazel:Build and test software of any size, quickly and reliably任意大小、快速、可靠的測試軟件。Bazel是google推出的一款工程編譯工具,并且已經將其開源。Bazel可以快速地構建可靠的代碼,谷歌的大多數軟件都是由它來構建,因此,在谷歌的開發環境里,它主要負責處理代碼構建相關問題:大規模數據構建問題,共享代碼庫問題,從源代碼構建的軟件的相關問題。Bazel支持多種語言并且跨平臺,還支持自動化測試和部署、具有再現性(Reproducibility)和規模化等特征。Bazel在谷歌大規模軟件開發實踐能力方面起著至關重要的作用。簡單來說,Bazel類似于make。
加快構建和測試速度:BaZeL只重建必要的東西。通過高級的本地緩存和分布式緩存、優化的依賴性分析和并行執行,可以快速和增量地進行構建。
一種工具,多種語言:構建和測試Java、C++、Android、IOS、GO以及各種各樣的其他語言平臺。BAZEL在Windows、MaOS和Linux上運行。
可縮放:BAZEL幫助您擴展您的組織、代碼庫和持續集成系統。它處理任意大小的代碼庫,在多個存儲庫或巨大的MMOREPO中。
可擴展到您的需要:用Bazel熟悉的擴展語言輕松地支持新語言和新平臺。共享和重用由成長中的Bazel社區編寫的語言規則。
官網地址:https://www.bazel.build
1、Bazel的應用:可以構建一個服務器、Android和iOS應用。
Bazel的安裝
1、Windows安裝&安裝:https://docs.bazel.build/versions/master/install-windows.html
(1)、下載并安裝,
(2)、將該路徑添加到系統環境變量內
(3)、編輯環境參數:從“控制面板或開始菜單”打開“環境變量”對話框,并在“用戶變量”部分下添加或編輯以下變量:
1)、編輯路徑。將新條目添加到列表的開頭:BAZEL.EXE的目錄。(例如:C:BAZEL)。MSYS2的UR \ bin目錄。(例如:c:\Mys64 \ Ur\bin)。如果您將構建Python代碼:Python .EXE的目錄。(例:C:\Python 3)。
2)、添加BZELLSHIH,其價值必須是MyS2 BASH的路徑。例子:c:\Mys64 \Ur\bin \Bas.EXE
3)、添加JavaJHEAD(如果你將構建Java代碼)。它的值必須是安裝Java JDK 8的目錄,例如C:\程序文件\java\jdk1.8015152。
2、Ubuntu下載&安裝:https://docs.bazel.build/versions/master/install-ubuntu.html
Bazel的使用方法
0、使用bazel時,先要了解幾個概念:
workspace 工作空間,每個工作空間中由一個WORKSPACE文件,來描述工作空間所使用到的信息。
package 程序包,每個程序包中包含一個BUILD文件,此文件中描述了此工具包的生成構建方式。
target 目標,生成的目標,每個target又可以作為另外一個規則的輸入。絕大部分的target屬于兩種基本類型中的一種,file和rule。另外,還有一種其他的target類型,package group。但是他們很少見。
(1)、關于工作區
bazel builds應該在一個工作區內運行,這個工作區應該包括源代碼和build輸出目錄的符號鏈接(eg: bazel-bin、bazel-out)。工作區目錄的位置是可以隨意,但工作區的根目錄必須包含一個名為WORKSPACE的工作區配置文件,工作區配置文件可以是一個空文件,也可以包含引用外部構建輸出所需的依賴關系。在一個工作區內,可以根據需求共享多個項目。
(2)、創建Build文件
Bazel通過檢查BUIDL文件可以知道那些目標文件被創建在項目中,這些BUILD文件采用與Python相似的語法所寫,這種語言通常是一系列規則的聲明,每個規則指定相應的輸入、輸出以及實現輸入到輸出的方法。
1、Windows使用方法:https://docs.bazel.build/versions/master/windows.html
2、Ubuntu使用方法:
Windows
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。