次の関数は @bazel_tools//tools/build_defs/repo:local.bzl
から読み込めます。
ローカル ファイル システム内のディレクトリをリポジトリとして使用するためのルール。
セットアップ
これらのルールをモジュール拡張機能で使用するには、ルールを .bzl ファイルに読み込んでから、拡張機能の実装関数から呼び出します。たとえば、local_repository
を使用するには、次のようにします。
load("@bazel_tools//tools/build_defs/repo:local.bzl", "local_repository")
def _my_extension_impl(mctx):
local_repository(name = "foo", path = "foo")
my_extension = module_extension(implementation = _my_extension_impl)
または、MODULE.bazel ファイル内で use_repo_rule
を使用して、これらのリポジトリ ルールを直接呼び出すこともできます。
local_repository = use_repo_rule("@bazel_tools//tools/build_defs/repo:local.bzl", "local_repository")
local_repository(name = "foo", path = "foo")
local_repository
local_repository(name, path, repo_mapping)
Bazel ファイルがすでに含まれているローカル ディレクトリをリポジトリとして利用できるようにします。このディレクトリには、Bazel BUILD ファイルとリポジトリ境界ファイルがすでに含まれているはずです。これらのファイルが含まれていない場合は、代わりに <a href="#new_local_repository"><code>new_local_repository</code></a> を使用することを検討してください。
属性
name |
Name(必須) このリポジトリの一意の名前。 |
path |
文字列、必須
リポジトリとして使用可能にするディレクトリのパス。 パスは、絶対パスまたはワークスペース ルートからの相対パスで指定できます。 |
repo_mapping |
辞書: 文字列 -> 文字列(必須) ローカル リポジトリ名からグローバル リポジトリ名への辞書。これにより、このリポジトリの依存関係について、ワークスペースの依存関係の解決を制御できます。 たとえば、エントリ"@foo": "@bar"` は、このリポジトリが `@foo` に依存する場合は常に(`@foo//some:target` への依存関係など、グローバルに宣言された `@bar`(`@bar//some:target`)内でその依存関係を解決する必要があることを宣言します。 |
new_local_repository
new_local_repository(name, build_file, build_file_content, path, repo_mapping)
Bazel ファイルを含まないローカル ディレクトリをリポジトリとして作成します。このディレクトリに Bazel BUILD ファイルやリポジトリ境界ファイルがある必要はありません。これらはこのリポジトリ ルールによって作成されます。このディレクトリにすでに Bazel ファイルが含まれている場合は、代わりに <a href="#local_repository"><code>local_repository</code></a> を使用することを検討してください。
属性
name |
Name(必須) このリポジトリの一意の名前。 |
build_file |
ラベル(省略可) このリポジトリのビルド ファイルとして使用するファイル。
このラベルで指定されるファイルの名前は BUILD にする必要はありませんが、BUILD にできます。 |
build_file_content |
文字列。省略可 このリポジトリ用に作成される BUILD ファイルの内容。
|
path |
文字列、必須
リポジトリとして使用可能にするディレクトリのパス。 パスは、絶対パスまたはワークスペース ルートからの相対パスで指定できます。 |
repo_mapping |
辞書: 文字列 -> 文字列(必須) ローカル リポジトリ名からグローバル リポジトリ名への辞書。これにより、このリポジトリの依存関係について、ワークスペースの依存関係の解決を制御できます。 たとえば、エントリ"@foo": "@bar"` は、このリポジトリが `@foo` に依存する場合は常に(`@foo//some:target` への依存関係など、グローバルに宣言された `@bar`(`@bar//some:target`)内でその依存関係を解決する必要があることを宣言します。 |