MODULE.bazel 檔案

回報問題 Nightly · 7.4 . 7.3 7.2 7.1 7.0 6.5

在 MODULE.bazel 檔案中可用的函式。

成員

archive_override

None archive_override(module_name, urls, integrity='', strip_prefix='', patches=[], patch_cmds=[], patch_strip=0)

指定這項依附元件應來自特定位置的封存檔案 (zip、gzip 等),而非註冊資料庫。這項指示僅會在根模組中生效;換句話說,如果模組用於其他依附元件,則系統會忽略其本身的覆寫值。

參數

參數 說明
module_name 必要
要套用此覆寫值的 Bazel 模組依附元件名稱。
urls string;或「字串」的可疊代項目; 必要
封存內容的網址;可以是 http(s):// 或 file:// URL。
integrity 預設為 ''
封存檔案的預期總和檢查碼,採用子資源完整性格式。
strip_prefix 預設為 ''
要從解壓縮檔案中移除的目錄前置字串。
patches 字串的可疊代項目; 預設值為 []
標籤清單,指向要套用至這個模組的修補程式檔案。修補型檔案必須存在於頂層專案的來源樹狀結構中。系統會依清單順序套用這些規則。
patch_cmds 字串的可疊代項目; 預設值為 []
套用修補程式後,要套用到 Linux/Macos 的 Bash 指令序列。
patch_strip 預設值為 0
與 Unix 修補程式的 --strip 引數相同。

bazel_dep

None bazel_dep(name, version='', max_compatibility_level=-1, repo_name='', dev_dependency=False)

宣告對其他 Bazel 模組的直接依附元件。

參數

參數 說明
name required
要新增為直接依附元件的模組名稱。
version 預設為 ''
要新增為直接依附元件的模組版本。
max_compatibility_level 預設為 -1
如果要將模組設為直接依附元件,則可支援的最大 compatibility_level 為 模組版本會隱含支援的最低 compatible_level,以及如未指定屬性,則為最大值。
repo_name 預設值為 ''
代表此依附元件的外部存放區名稱。預設為模組名稱。
dev_dependency 預設值為 False
如果設為 true,當目前的模組不是根模組或已啟用 `--ignore_dev_dependency` 時,系統會忽略這個依附元件。

git_override

None git_override(module_name, remote, commit='', patches=[], patch_cmds=[], patch_strip=0, init_submodules=False, strip_prefix='')

指定依附元件應來自 Git 存放區的特定修訂版本。這項指示僅會在根模組中生效;換句話說,如果模組用於其他依附元件,則系統會忽略其本身的覆寫值。

參數

參數 說明
module_name 必要
要套用此覆寫值的 Bazel 模組依附元件名稱。
remote required
Git 遠端存放區的網址。
commit 預設為 ''
應檢出的提交。
patches 字串的可疊代項目; 預設值為 []
標籤清單,指向要套用至這個模組的修補程式檔案。修補型檔案必須存在於頂層專案的來源樹狀結構中。系統會依清單順序套用這些規則。
patch_cmds 字串的可疊代項目; 預設值為 []
套用修補程式後,要套用到 Linux/Macos 的 Bash 指令序列。
patch_strip 預設值為 0
與 Unix 修補程式的 --strip 引數相同。
init_submodules 預設值為 False
Git 子模組是否應在擷取的存放區中遞迴初始化。
strip_prefix 預設值為 ''
要從已擷取檔案中移除的目錄前置字串。可用於指定 Git 存放區的子目錄。請注意,子目錄本身的 `MODULE.bazel` 檔案必須要有模組名稱,與傳遞至這個 `git_override` 的 `module_name` arg 相同。

包含

None include(label)

包含另一個類似 MODULE.bazel 檔案的內容。實際上,include() 的行為就像是將包含的檔案以文字形式放在 include() 呼叫的位置,但變數繫結 (例如用於 use_extension 的繫結) 只會顯示在發生變數繫結的檔案中,不會顯示在任何包含或包含的檔案中。

只有根模組可以使用 include();如果 bazel_dep 的 MODULE 檔案使用 include(),則會發生錯誤。

只會包含主要存放區中的檔案。

include() 可讓您將根模組檔案切割成多個部分,以免產生巨大的 MODULE.bazel 檔案,或更妥善地管理個別語意區段的存取控制。

參數

參數 說明
label 必要
指向要納入檔案的標籤。標籤必須指向主要存放區中的檔案。也就是必須以雙斜線 (//) 開頭。

local_path_override

None local_path_override(module_name, path)

指定依附元件應來自本機磁碟上的特定目錄。這個指令只會在根模組中生效;換句話說,如果模組做為其他依附元件使用模組,系統會忽略本身的覆寫值。

參數

參數 說明
module_name required
要套用此覆寫值的 Bazel 模組依附元件名稱。
path required
這個模組所在目錄的路徑。

module

None module(name='', version='', compatibility_level=0, repo_name='', bazel_compatibility=[])

宣告目前 Bazel 存放區所代表的 Bazel 模組的特定屬性。這些屬性是模組的基本中繼資料 (例如名稱和版本),或影響目前模組及其相依項目的行為。

最多只能呼叫一次,且如果要呼叫,則必須是 MODULE.bazel 檔案中的第一個指示。只有在這個模組為根模組時,才可以省略它 (如同同理,如果不以其他模組依附該模組)。

參數

參數 說明
name 預設值為 ''
模組的名稱,只有在這個模組是根模組 (也就是不會受到其他模組依附) 時,才能省略。有效的模組名稱必須符合以下條件:1) 只能包含小寫英文字母 (a-z)、數字 (0-9)、點 (.)、連字號 (-) 和底線 (_);2) 開頭須為小寫英文字母;3) 結尾須為小寫英文字母或數字。
version 預設值為 ''
模組的版本。只有在這個模組為根模組時,才可以省略 (就像同好,它不是由其他模組依附)。版本必須採用寬鬆的 SemVer 格式;詳情請參閱說明文件
compatibility_level 預設值為 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 之後才能使用的功能時,才會使用 Bazel。-X.X.X:Bazel 版本 X.X.X 不相容。當 X.X.X 中有導致您無法正常運作的錯誤,但在後續版本中已修正時,請使用此選項。

multiple_version_override

None multiple_version_override(module_name, versions, registry='')

指定依附元件應仍來自註冊資料庫,但應允許同時存在多個版本。詳情請參閱說明文件。這項指示僅會在根模組中生效;換句話說,如果模組用於其他依附元件,則系統會忽略其本身的覆寫值。

參數

參數 說明
module_name required
要套用此覆寫值的 Bazel 模組依附元件名稱。
versions 字串的可疊代項目; 必要
明確指定可同時存在的版本。這些版本必須已在依附元件圖表預先選取項目中。這個模組的依附元件會「升級」至相容性層級中允許的最近較高版本,但如果依附元件的版本高於同層級中允許的任何版本,就會導致錯誤。
registry 預設值為 ''
覆寫此模組的登錄檔;而非從預設登錄檔清單中找到這個模組,則應使用指定的登錄檔。

register_execution_platforms

None register_execution_platforms(dev_dependency=False, *platform_labels)

指定在選取這個模組時要註冊的已定義執行平台。必須是絕對目標模式 (例如開頭為 @//)。詳情請參閱工具鍊解決方案

參數

參數 說明
dev_dependency 預設為 False
如果為 true,如果目前的模組不是根模組,或已啟用 `--ignore_dev_dependency`,則不會註冊執行平台。
platform_labels 字串序列; 必要
要註冊的平台標籤。

register_toolchains

None register_toolchains(dev_dependency=False, *toolchain_labels)

指定在選取這個模組時要註冊的已定義工具鏈。必須是絕對目標模式 (例如開頭為 @//)。詳情請參閱工具鍊解決方案

參數

參數 說明
dev_dependency 預設為 False
如果為 true,如果目前的模組不是根模組,或已啟用 `--ignore_dev_dependency`,則不會註冊工具鏈。
toolchain_labels 字串序列; 必要
要註冊的工具鏈標籤。標籤可以包含 :all,在此情況下,套件中所有工具鍊提供的目標將依名稱的字母順序登錄。

single_version_override

None single_version_override(module_name, version='', registry='', patches=[], patch_cmds=[], patch_strip=0)

指定依附元件仍應來自登錄,但其版本應固定,或其登錄應覆寫,或套用一組修正程式。這個指令只會在根模組中生效;換句話說,如果模組做為其他依附元件使用模組,系統會忽略本身的覆寫值。

參數

參數 說明
module_name 必要
要套用此覆寫值的 Bazel 模組依附元件名稱。
version 預設為 ''
覆寫依附元件圖表中此模組的宣告版本。換句話說,這個模組會「固定」這個覆寫版本如果只想覆寫登錄檔或修補程式,則可省略這項屬性。
registry 預設為 ''
覆寫此模組的註冊機制;請使用指定的註冊機制,而非從預設的註冊機制清單中尋找此模組。
patches 字串的可迭代項目;預設為 []
。修補型檔案必須存在於頂層專案的來源樹狀結構中。系統會依清單順序套用這些規則。
patch_cmds 字串的可迭代項目;預設為 []
。在套用修補程式後,在 Linux/Macos 上套用的 Bash 指令序列。
patch_strip 預設值為 0
與 Unix 修補程式的 --strip 引數相同。

use_extension

module_extension_proxy use_extension(extension_bzl_file, extension_name, *, dev_dependency=False, isolate=False)

傳回代表模組擴充功能的 Proxy 物件,可呼叫其方法來建立模組擴充功能標記。

參數

參數 說明
extension_bzl_file 必要
定義模組副檔名的 Starlark 檔案標籤。
extension_name required
要使用的模組擴充功能名稱。這個名稱的符號必須由 Starlark 檔案匯出。
dev_dependency 預設為 False
如果為 true,如果目前的模組不是根模組,或是已啟用 `--ignore_dev_dependency`,系統就會忽略此模組擴充功能的使用方式。
isolate 預設值為 False
實驗功能。這項參數仍在實驗階段,隨時可能變更。請勿仰賴這項功能。你可以透過設定 ---experimental_isolated_extension_usages 以實驗性方式啟用該功能
設為 true 時,此模組擴充功能的使用情形將與此模組及其他模組的其他所有用途區隔開來。為此用途建立的代碼不會影響其他用途,而擴充功能為此用途產生的存放區也會與擴充功能產生的其他存放區有所區別。

這個參數目前為實驗功能,且僅適用於 --experimental_isolated_extension_usages 旗標。

use_repo

None use_repo(extension_proxy, *args, **kwargs)

將指定模組擴充功能產生的一或多個存放區匯入目前模組的範圍。

參數

參數 說明
extension_proxy 必要
use_extension 呼叫傳回的模組擴充功能 Proxy 物件。
args 必要
要匯入的存放區名稱。
kwargs 必要
使用不同名稱指定要匯入至目前模組範圍的特定存放區。鍵應為在目前範圍中使用的名稱,而值應為模組擴充功能匯出的原始名稱。

use_repo_rule

repo_rule_proxy use_repo_rule(repo_rule_bzl_file, repo_rule_name)

傳回代理值,可在 MODULE.bazel 檔案中直接以存放區規則呼叫一或多個。以這種方式建立的 repo 只會顯示在目前模組下方,且名稱會使用代理程式上的 name 屬性宣告。隱含的布林值 dev_dependency 屬性也可以用於 Proxy,用來表示只有在目前模組為根模組時,才會建立特定存放區。

參數

參數 說明
repo_rule_bzl_file required
Starlark 檔案的標籤,用於定義存放區規則。
repo_rule_name required
The name of the repo rule to use. 這個名稱的符號必須由 Starlark 檔案匯出。