バージョンアップ情報
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)ツールです。
 

