在 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
|
required 所有其他引數都會轉送至基礎 http_archive 存放區規則。請注意,請勿指定 name 屬性,改用 module_name 。 |
bazel_dep
None
bazel_dep(name, version='', max_compatibility_level=-1, repo_name='', dev_dependency=False)
參數
參數 | 說明 |
---|---|
name
|
字串;
必要 要新增為直接依附元件的模組名稱。 |
version
|
字串;預設值為 '' 。 要新增為直接依附元件的模組版本。 |
max_compatibility_level
|
int;預設為 -1 。 如果要將模組新增為直接依附元件,則支援的最大 compatibility_level 為 模組的版本會暗示支援的最低相容性層級,以及未指定此屬性時的最高相容性層級。 |
repo_name
|
字串;預設為 '' 。代表此依附元件的外部存放區名稱。預設為模組名稱。 |
dev_dependency
|
bool;
預設為 False 如果為 true,如果目前的模組不是根模組,或已啟用 `--ignore_dev_dependency`,系統就會忽略這個依附元件。 |
git_override
None
git_override(module_name, **kwargs)
git_repository
規則支援。這項指示僅會在根模組中生效;換句話說,如果模組用於其他依附元件,系統會忽略其本身的覆寫值。
參數
參數 | 說明 |
---|---|
module_name
|
string;
必要 要套用此覆寫值的 Bazel 模組依附元件名稱。 |
kwargs
|
required 所有其他引數都會轉送至基礎 git_repository
repo 規則。請注意,請勿指定 name 屬性,改用 module_name 。 |
包含
None
include(label)
include()
的行為就像是將包含的檔案以文字形式放在 include()
呼叫的位置,但變數繫結 (例如用於 use_extension
的繫結) 只會顯示在發生變數繫結的檔案中,不會顯示在任何包含或包含的檔案中。只有根模組可以使用 include()
;如果 bazel_dep
的 MODULE 檔案使用 include()
,則會發生錯誤。
只能納入主存放區中的檔案。
include()
可讓您將根模組檔案切割成多個部分,以免產生巨大的 MODULE.bazel 檔案,或更妥善地管理個別語意區段的存取控制。
參數
參數 | 說明 |
---|---|
label
|
string;
required 指向要納入的檔案的標籤。標籤必須指向主存放區中的檔案,也就是說,必須以雙斜線 ( // ) 開頭。檔案名稱必須以 .MODULE.bazel 結尾,且不得以 . 開頭。
|
inject_repo
None
inject_repo(extension_proxy, *args, **kwargs)
--ignore_dev_dependency
,系統就會忽略此值。請改用 override_repo
覆寫現有的 repo。
參數
參數 | 說明 |
---|---|
extension_proxy
|
module_extension_proxy;
必須提供 module_extension_proxy 是 use_extension 呼叫傳回的模組擴充功能 Proxy 物件。 |
args
|
required 目前模組可見的 repos,應以相同名稱插入擴充功能。 |
kwargs
|
required 要插入至擴充功能的新 repos,其中值為目前模組範圍內的 repos 名稱,而鍵則是這些名稱在擴充功能中顯示的名稱。 |
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;預設為 0 。 模組的相容性層級;每當引入不相容的重大變更時,都應變更此層級。從 SemVer 的角度來看,這基本上是模組的「主要版本」,但它並未嵌入版本字串本身,而是以獨立欄位的形式存在。不同相容性層級的模組會參與版本解析,就好像是名稱不同的模組一樣,但最終依附元件圖表不得包含名稱相同但相容性層級不同的多個模組 (除非 multiple_version_override 生效)。詳情請參閱說明文件。
|
repo_name
|
字串;預設值為 '' 。代表此模組的存放區名稱,由模組本身顯示。根據預設,存放區名稱會是模組名稱。您可以指定此值,以便為使用與模組名稱不同的存放區名稱的專案,簡化遷移作業。 |
bazel_compatibility
|
字串可迭代項目;預設為 [] 。 Bazel 版本清單,可讓使用者宣告哪些 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
|
string 的疊代項目;必填 明確指定允許共存的版本。這些版本必須已在依附元件圖表預先選取項目中。這個模組的依附元件會「升級」至相容性層級中允許的最近較高版本,但如果依附元件的版本高於同層級中允許的任何版本,就會導致錯誤。 |
registry
|
字串;
預設值為 '' 覆寫此模組的註冊表;應使用指定的註冊表,而非從預設的註冊表清單中尋找此模組。 |
override_repo
None
override_repo(extension_proxy, *args, **kwargs)
請改用 inject_repo
新增來源集。
參數
參數 | 說明 |
---|---|
extension_proxy
|
module_extension_proxy;
必須提供 module_extension_proxy 是 use_extension 呼叫傳回的模組擴充功能 Proxy 物件。 |
args
|
必填 extensions 中的 repos,應與目前模組中同名的 repos 重寫。 |
kwargs
|
required 套用至擴充功能產生的存放區的覆寫值,其中值為目前模組範圍中的存放區名稱,而鍵則是擴充功能中會覆寫的存放區名稱。 |
register_execution_platforms
None
register_execution_platforms(dev_dependency=False, *platform_labels)
@
或 //
開頭)。詳情請參閱工具鍊解析。展開至多個目標的模式 (例如 :all
) 會依字典順序依名稱註冊。
參數
參數 | 說明 |
---|---|
dev_dependency
|
bool;
預設為 False 如果為 true,如果目前的模組不是根模組,或已啟用 `--ignore_dev_dependency`,則系統就不會註冊執行平台。 |
platform_labels
|
字串序列;
必填 要註冊的目標模式。 |
register_toolchains
None
register_toolchains(dev_dependency=False, *toolchain_labels)
@
或 //
開頭)。詳情請參閱工具鍊解析。可展開至多個目標的模式 (例如 :all
) 會依照字典順序 (而非工具鍊實作名稱) 以字母順序註冊。
參數
參數 | 說明 |
---|---|
dev_dependency
|
bool;
預設為 False 如果為 true,如果目前的模組不是根模組,或是已啟用 `--ignore_dev_dependency`,則不會註冊工具鍊。 |
toolchain_labels
|
字串序列;
必填 要註冊的目標模式。 |
single_version_override
None
single_version_override(module_name, version='', registry='', patches=[], patch_cmds=[], patch_strip=0)
參數
參數 | 說明 |
---|---|
module_name
|
string;
必要 要套用此覆寫值的 Bazel 模組依附元件名稱。 |
version
|
字串;預設值為 '' 。覆寫依附元件圖表中此模組的宣告版本。換句話說,這個模組會「固定」至這個覆寫版本。如果您只想覆寫註冊表或修補程式,可以省略這個屬性。 |
registry
|
字串;
預設值為 '' 覆寫此模組的註冊表;應使用指定的註冊表,而非從預設的註冊表清單中尋找此模組。 |
patches
|
字串的可迭代項目;預設為 [] 。修補檔案必須位於頂層專案的來源樹狀結構中。系統會依清單順序套用這些規則。 如果修補程式變更了 MODULE.bazel 檔案,只有在根模組提供修補檔案時,這些變更才會生效。 |
patch_cmds
|
字串的可迭代項目;預設為 [] 。在套用修補程式後,在 Linux/Macos 上套用的 Bash 指令序列。 對 MODULE.bazel 檔案所做的變更不會生效。 |
patch_strip
|
int;預設值為 0 。與 Unix 修補程式的 --strip 引數相同。 |
use_extension
module_extension_proxy use_extension(extension_bzl_file, extension_name, *, dev_dependency=False, isolate=False)
參數
參數 | 說明 |
---|---|
extension_bzl_file
|
字串;
必要 這是 Starlark 檔案的標籤,用於定義模組擴充功能。 |
extension_name
|
string;
必要 要使用的模組擴充功能名稱。這個名稱的符號必須由 Starlark 檔案匯出。 |
dev_dependency
|
bool;
預設為 False 如果為 true,如果目前的模組不是根模組,或已啟用 `--ignore_dev_dependency`,系統就會忽略模組擴充功能的這項用法。 |
isolate
|
bool;預設值為 False 。實驗功能。這個參數仍在實驗階段,可能隨時變更。請勿依賴這項功能。您可以設定 --experimental_isolated_extension_usages ,以實驗方式啟用此功能。如果設為 true,則模組擴充功能的這項用法會與此模組和其他模組中的所有其他用法隔離。為此用途建立的代碼不會影響其他用途,而擴充功能為此用途產生的存放區也會與擴充功能產生的其他存放區有所區別。 這個參數目前為實驗功能,且僅適用於 |
use_repo
None
use_repo(extension_proxy, *args, **kwargs)
參數
參數 | 說明 |
---|---|
extension_proxy
|
module_extension_proxy;
必須提供 module_extension_proxy 是 use_extension 呼叫傳回的模組擴充功能 Proxy 物件。 |
args
|
必填 The names of the repos to import. |
kwargs
|
required Specifies certain repos to import into the scope of the current module with different names. 鍵應為在目前範圍中使用的名稱,而值應為模組擴充功能匯出的原始名稱。 |
use_repo_rule
repo_rule_proxy use_repo_rule(repo_rule_bzl_file, repo_rule_name)
name
屬性宣告。隱含的布林值 dev_dependency
屬性也可以用於 Proxy,用來表示只有在目前模組為根模組時,才會建立特定存放區。
參數
參數 | 說明 |
---|---|
repo_rule_bzl_file
|
string;
必要 這是定義存放區規則的 Starlark 檔案標籤。 |
repo_rule_name
|
字串;
必要 要使用的存放區規則名稱。這個名稱的符號必須由 Starlark 檔案匯出。 |