バージョンアップ情報
Bazel情報
Bazelとは
Bazel(バゼル)は、Google が社内開発に使用していた独自のビルドツールをオープンソース化したプロダクトです。
ビルドツールとは、ソフトウェアの構築、テストを自動化することにより開発効率を高めることが出来るツールです。
代表的なビルドツールとしては make、maven、gradle が挙げられます。
ビルドのための手続きは Python の方言であるStarlark と呼ばれるスクリプト言語で記述します。
主な特徴
- ビルドとテストの高速化
高度なローカルキャッシングと分散キャッシング、最適化された依存関係分析、および並列実行、インクリメンタルビルドにより、高速に必要な物だけビルドすることが出来ます。
-
複数の言語、環境に対応
C++、Java、Kotlin、Python、Go、Rust
BazelはWindows、macOS、Linux で動作し、Java、C++、Android、iOS、Goなどの様々な言語プラットフォームを対象としたテスト及びビルドが行えます。
- スケーラブル
継続的インテグレーションシステムや、複数のリポジトリまたは巨大なサイズのコードにも対応可能です。
- ニーズに合わせて拡張可能
コミュニティにより作成されたルールを追加することにより、対応する言語やプラットフォームを拡張することが出来ます。ルールとは Bazel 上での一連のアクションを定義したものです。
現在、推奨されているルール
- Android
- C / C++
- Docker
- Go
- Haskell
- Java
- JavaScript / NodeJS
- Kubernetes
- Maven dependency management
- Objective C
- Package building
- Protocol Buffers
- Python
- Scala
- Shell
- Webtesting (Webdriver)
類似プロダクト
Bazel 以外には以下のようなビルドツールがあります。
- make
- apache ant
- apache maven
- gradle
- Pants
- Buck
- Please
Bazelの仕組み
Bazelは、ワークスペースと呼ばれるディレクトリ階層に配置されたソースコードよりソフトウェアのビルドを行います。
ビルドはパッケージ単位で行われます。
WORKSPACEファイル:ワークスペースのルートディレクトリに置かれます。
BUILDファイル:パッケージはBUILDファイルで定義します。
Bazel の公式サイトには C++、Java、Android、iOSのチュートリアルが公開されています。
動作環境
Bazelは以下の環境にインストールできます。
公式パッケージ
- Ubuntu Linux
- macOS
- Windows
コミュニティがサポートするパッケージ
- Arch Linux
- CentOS 6
- Debian
- FreeBSD
- Gentoo
- Homebrew
- Linuxbrew
- Nixpkgs
- openSUSE
- Parabola
- Scoop
- Raspberry Pi
コミュニティがサポートするアーキテクチャ
- ppc64le
Bazelのライセンス
Bazel は、Apache2.0ライセンスです。
Apache License(アパッチ・ライセンス)のコードが使用されていることの明記を条件に、ソースコードの自由な改変と公開が認められています。
オープンソース年間サポートサービス
OpenStandiaではOSSを安心してご利用いただけるように、オープンソース年間サポートサービスをご提供しております。
サポートしているOSSは下記ページをご参照ください。
関連OSS
-
jenkins
ジェンキンス。ソフトウェア開発プロセスの「ビルド」「デプロイ」「テスト」などの作業自動化/効率化を支援するオープンソースの継続的インテグレーション(CI)ツールです。