MODULE.bazel 檔案中可用的方法。
成員
- archive_override
- bazel_dep
- git_override
- include
- inject_repo
- local_path_override
- module
- multiple_version_override
- override_repo
- register_execution_platforms
- register_toolchains
- single_version_override
- use_extension
- use_repo
- use_repo_rule
archive_override
None
archive_override(module_name, **kwargs)
http_archive
規則支援。這項指令只會在根模組中生效;換句話說,如果模組做為其他模組的依附元件,系統會忽略該模組的覆寫。
參數
參數 | 說明 |
---|---|
module_name
|
string;必要
要套用這項覆寫的 Bazel 模組依附元件名稱。 |
kwargs
|
必要 所有其他引數都會轉送至基礎 http_archive repo 規則。請注意,不應指定 name 屬性,請改用 module_name 。 |
bazel_dep
None
bazel_dep(name, version='', max_compatibility_level=-1, repo_name='', dev_dependency=False)
參數
參數 | 說明 |
---|---|
name
|
string;必要
要新增為直接依附元件的模組名稱。 |
version
|
string;預設值為 '' 要新增為直接依附元件的模組版本。 |
max_compatibility_level
|
int;
預設值為 -1 可新增為直接依附元件的模組支援 compatibility_level 上限。模組版本代表支援的最低 compatibility_level,如果未指定這項屬性,則代表支援的最高 compatibility_level。
|
repo_name
|
string 或 None ;預設值為 '' 代表這項依附元件的外部存放區名稱。預設為模組名稱。可以設為 None ,將這個依附元件設為「nodep」依附元件:在這種情況下,只有當目標模組已透過其他方式存在於依附元件圖中,才會遵守這個 bazel_dep 規格。 |
dev_dependency
|
bool;
預設為 False 如果為 true,且目前模組不是根模組或已啟用 --ignore_dev_dependency ,系統就會忽略這項依附元件。
|
git_override
None
git_override(module_name, **kwargs)
git_repository
規則支援。這項指令只會在根模組中生效;換句話說,如果模組做為其他模組的依附元件,系統會忽略該模組的覆寫。
參數
參數 | 說明 |
---|---|
module_name
|
string;必要
要套用這項覆寫的 Bazel 模組依附元件名稱。 |
kwargs
|
必要 所有其他引數都會轉送至基礎 git_repository
repo 規則。請注意,不應指定 name 屬性,請改用 module_name 。 |
包含
None
include(label)
include()
的行為就像是將內含檔案以文字形式放在 include()
呼叫的位置,但變數繫結 (例如用於 use_extension
的繫結) 只會顯示在出現的檔案中,不會顯示在任何內含或包含檔案中。只有根模組可以使用 include()
,如果 bazel_dep
的 MODULE 檔案使用 include()
,就會發生錯誤。
系統只會納入主要存放區中的檔案。
include()
可讓您將根模組檔案分割成多個部分,避免產生龐大的 MODULE.bazel 檔案,或更妥善地管理個別語意區隔的存取控制。
參數
參數 | 說明 |
---|---|
label
|
string;必要 指向要納入檔案的標籤。標籤必須指向主要存放區中的檔案,也就是必須以雙斜線 ( // ) 開頭。檔案名稱結尾必須是 .MODULE.bazel ,開頭不得為 . 。
|
inject_repo
None
inject_repo(extension_proxy, *args, **kwargs)
--ignore_dev_dependency
,系統就會忽略此設定。請改用 override_repo
覆寫現有存放區。
參數
參數 | 說明 |
---|---|
extension_proxy
|
module_extension_proxy;
required 由 use_extension 呼叫傳回的模組擴充功能 Proxy 物件。
|
args
|
必要 應以相同名稱插入擴充功能的目前模組可見存放區。 |
kwargs
|
必要 要注入擴充功能的新 repos,其中值是目前模組範圍內 repos 的名稱,而鍵則是這些 repos 在擴充功能中顯示的名稱。 您可以透過以額外關鍵字引數形式傳遞的字面值 dict 指定無效的 ID,例如: |
local_path_override
None
local_path_override(module_name, path)
local_repository
規則為後盾。這項指令只會在根模組中生效;換句話說,如果模組做為其他模組的依附元件,系統會忽略該模組的覆寫。
參數
參數 | 說明 |
---|---|
module_name
|
string;必要
要套用這項覆寫的 Bazel 模組依附元件名稱。 |
path
|
string;必要
這個模組所在目錄的路徑。 |
module
None
module(name='', version='', compatibility_level=0, repo_name='', bazel_compatibility=[])
這個函式最多只能呼叫一次,且如果呼叫,必須是 MODULE.bazel 檔案中的第一個指令。只有當這個模組是根模組時 (也就是不會依附於其他模組),才能省略這項設定。
參數
參數 | 說明 |
---|---|
name
|
string;預設值為 '' 表示模組名稱。只有當這個模組是根模組時 (也就是不會依附於其他模組),才能省略這個屬性。有效的模組名稱必須:1) 只能包含小寫字母 (a-z)、數字 (0-9)、半形句點 (.)、連字號 (-) 和底線 (_);2) 以小寫字母開頭;3) 以小寫字母或數字結尾。 |
version
|
string;預設為 '' 模組版本。只有當這個模組是根模組時 (也就是不會依附於其他模組),才能省略這個屬性。版本必須採用寬鬆的 SemVer 格式,詳情請參閱說明文件。 |
compatibility_level
|
int;
default is 0 The compatibility level of the module; this should be changed every time a major incompatible change is introduced. 就 SemVer 而言,這基本上是模組的「主要版本」,但它並非內嵌在版本字串本身,而是以獨立欄位存在。相容性層級不同的模組會參與版本解析,就像名稱不同的模組一樣,但最終的依附元件圖表不得包含名稱相同但相容性層級不同的多個模組 (除非 multiple_version_override 生效)。詳情請參閱說明文件。
|
repo_name
|
string;預設值為 '' 代表這個模組的存放區名稱,模組本身會看到這個名稱。根據預設,存放區名稱就是模組名稱。如果專案使用的存放區名稱與模組名稱不同,可以指定這個屬性,方便遷移。 |
bazel_compatibility
|
字串的可疊代項目;
預設為 [] 使用者可宣告與這個模組相容的 Bazel 版本清單。這項設定「不會」影響依附元件解析,但 bzlmod 會使用這項資訊檢查目前的 Bazel 版本是否相容。這個值的格式為以半形逗號分隔的某些限制值字串。系統支援三種限制:<=X.X.X:Bazel 版本必須等於或舊於 X.X.X。如果新版本有已知的不相容變更,就會使用這項限制。>=X.X.X:Bazel 版本必須等於或新於 X.X.X。當您依附於 X.X.X 之後才推出的功能時,請使用這個版本。-X.X.X:Bazel 版本 X.X.X 不相容。如果 X.X.X 版本有錯誤導致您無法正常運作,但後續版本已修正,請使用這個選項。 |
multiple_version_override
None
multiple_version_override(module_name, versions, registry='')
參數
參數 | 說明 |
---|---|
module_name
|
string;必要
要套用這項覆寫的 Bazel 模組依附元件名稱。 |
versions
|
字串的疊代器;
必要 明確指定允許共存的版本。這些版本必須已出現在預先選取的依附元件圖表中。這個模組的依附元件會「升級」至相同相容性層級中,最接近的較高允許版本;如果依附元件的版本高於相同相容性層級中的任何允許版本,就會導致錯誤。 |
registry
|
string;預設為 '' 。覆寫這個模組的登錄檔;系統應使用指定的登錄檔,而非從預設登錄檔清單中尋找這個模組。 |
override_repo
None
override_repo(extension_proxy, *args, **kwargs)
請改用 inject_repo
新增存放區。
參數
參數 | 說明 |
---|---|
extension_proxy
|
module_extension_proxy;
required 由 use_extension 呼叫傳回的模組擴充功能 Proxy 物件。
|
args
|
必要 擴充功能中的 repos,應以目前模組中名稱相同的 repos 覆寫。 |
kwargs
|
必要 要套用至擴充功能所產生 repo 的覆寫,其中值為目前模組範圍內的 repo 名稱,而鍵則是擴充功能中要覆寫的 repo 名稱。 您可以透過以額外關鍵字引數形式傳遞的字面值 dict 指定無效的 ID,例如: |
register_execution_platforms
None
register_execution_platforms(dev_dependency=False, *platform_labels)
@
或 //
開頭)。詳情請參閱工具鍊解析。如果模式會展開為多個目標 (例如 :all
),系統會依名稱的字典順序註冊。
參數
參數 | 說明 |
---|---|
dev_dependency
|
bool;
default is False If true, the execution platforms will not be registered if the current module is not the root module or `--ignore_dev_dependency` is enabled. |
platform_labels
|
sequence of strings;必要
要註冊的目標模式。 |
register_toolchains
None
register_toolchains(dev_dependency=False, *toolchain_labels)
@
或 //
開頭)。詳情請參閱工具鍊解析。會擴展為多個目標的模式 (例如 :all
) 會依目標名稱 (而非工具鍊實作的名稱) 依字典順序註冊。
參數
參數 | 說明 |
---|---|
dev_dependency
|
bool;
default is False If true, the toolchains will not be registered if the current module is not the root module or `--ignore_dev_dependency` is enabled. |
toolchain_labels
|
sequence of strings;必要
要註冊的目標模式。 |
single_version_override
None
single_version_override(module_name, version='', registry='', patches=[], patch_cmds=[], patch_strip=0)
參數
參數 | 說明 |
---|---|
module_name
|
string;必要
要套用這項覆寫的 Bazel 模組依附元件名稱。 |
version
|
string;預設值為 '' 覆寫依附元件圖表中這個模組的宣告版本。換句話說,這個模組會「固定」在這個覆寫版本。如果只想覆寫登錄檔或修補程式,可以省略這個屬性。 |
registry
|
string;預設為 '' 。覆寫這個模組的登錄檔;系統應使用指定的登錄檔,而非從預設登錄檔清單中尋找這個模組。 |
patches
|
string 的可迭代項目;預設為 [] 指向要套用至此模組的修補程式檔案的標籤清單。修補程式檔案必須位於頂層專案的來源樹狀結構中。系統會依清單順序套用規則。 如果修補程式變更了 MODULE.bazel 檔案,只有在根模組提供修補程式檔案時,這些變更才會生效。 |
patch_cmds
|
string 的可疊代項目;
預設值為 [] 修補程式套用後,要在 Linux/macOS 上套用的 Bash 指令序列。 對 MODULE.bazel 檔案所做的變更不會生效。 |
patch_strip
|
int;
預設為 0 與 Unix patch 的 --strip 引數相同。 |
use_extension
module_extension_proxy use_extension(extension_bzl_file, extension_name, *, dev_dependency=False, isolate=False)
參數
參數 | 說明 |
---|---|
extension_bzl_file
|
string;必要 定義模組擴充功能的 Starlark 檔案標籤。 |
extension_name
|
string;必要
要使用的模組擴充功能名稱。Starlark 檔案必須匯出具有這個名稱的符號。 |
dev_dependency
|
bool;
default is False If true, this usage of the module extension will be ignored if the current module is not the root module or `--ignore_dev_dependency` is enabled. |
isolate
|
bool;預設為 False 實驗功能。這項參數仍在實驗階段,因此隨時可能變動。因此請勿依賴這項功能。您可以將 --experimental_isolated_extension_usages 設為 true,以實驗性質啟用這項功能。如果設為 true,這個模組擴充功能的用法會與這個模組和其他模組的所有其他用法隔離。--experimental_isolated_extension_usages 為此用途建立的標記不會影響其他用途,且擴充功能為此用途產生的存放區,與擴充功能產生的所有其他存放區不同。 這項參數目前為實驗性質,且僅適用於 |
use_repo
None
use_repo(extension_proxy, *args, **kwargs)
參數
參數 | 說明 |
---|---|
extension_proxy
|
module_extension_proxy;
required 由 use_extension 呼叫傳回的模組擴充功能 Proxy 物件。
|
args
|
必要 要匯入的存放區名稱。 |
kwargs
|
必要 指定要匯入目前模組範圍的特定 repo,並使用不同名稱。鍵應為要在目前範圍中使用的名稱,而值應為模組擴充功能匯出的原始名稱。 您可以透過以額外關鍵字引數形式傳遞的字面值 dict 指定無效的 ID,例如: |
use_repo_rule
repo_rule_proxy use_repo_rule(repo_rule_bzl_file, repo_rule_name)
name
屬性宣告。您也可以在 Proxy 上使用隱含的布林值 dev_dependency
屬性,表示只有在目前模組是根模組時,才能建立特定存放區。
參數
參數 | 說明 |
---|---|
repo_rule_bzl_file
|
string;必要 定義存放區規則的 Starlark 檔案標籤。 |
repo_rule_name
|
string;必要
要使用的存放區規則名稱。Starlark 檔案必須匯出具有這個名稱的符號。 |