MODULE.bazel 檔案

回報問題 夜間 · 8.3 · 8.2 · 8.1 · 8.0 · 7.6

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;或 string 的可疊代項目; 必要
封存檔的網址;可以是 http(s):// 或 file:// 網址。
integrity 預設值為 ''
封存檔案的預期檢查碼,格式為子資源完整性。
strip_prefix 預設值為 ''
要從解壓縮檔案中移除的目錄前置字串。
patches 字串的可疊代項目; 預設為 []
指向要套用至此模組的修補程式檔案的標籤清單。修補程式檔案必須位於頂層專案的來源樹狀結構中。系統會依清單順序套用規則。
patch_cmds string 的可疊代項目; 預設為 []
修補程式套用後,要在 Linux/macOS 上套用的 Bash 指令序列。
patch_strip 預設值為 0
與 Unix patch 的 --strip 引數相同。

bazel_dep

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

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

參數

參數 說明
name 必要
要新增為直接依附元件的模組名稱。
version 預設值為 ''
要新增為直接依附元件的模組版本。
max_compatibility_level 預設值為 -1
模組可新增為直接依附元件的最大 compatibility_level。模組版本代表支援的最低 compatibility_level,如果未指定這項屬性,則代表支援的最高 compatibility_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)

指定依附元件應來自 Git 存放區的特定提交。這項指令只會在根模組中生效;換句話說,如果模組做為其他模組的依附元件,系統會忽略其本身的覆寫。

參數

參數 說明
module_name 必要
要套用這項覆寫的 Bazel 模組依附元件名稱。
remote 必填
遠端 Git 存放區的網址。
commit 預設值為 ''
應簽出的提交內容。
patches 字串的可疊代項目; 預設為 []
指向要套用至此模組的修補程式檔案的標籤清單。修補程式檔案必須位於頂層專案的來源樹狀結構中。系統會依清單順序套用規則。
patch_cmds string 的可疊代項目; 預設為 []
修補程式套用後,要在 Linux/macOS 上套用的 Bash 指令序列。
patch_strip 預設值為 0
與 Unix patch 的 --strip 引數相同。

local_path_override

None local_path_override(module_name, path)

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

參數

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

module

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

宣告目前 Bazel 存放區所代表 Bazel 模組的特定屬性。這些屬性不是模組的重要中繼資料 (例如名稱和版本),就是會影響目前模組及其依附元件的行為。

最多只能呼叫一次。只有當這個模組是根模組時 (也就是不會依附於其他模組),才能省略這項設定。

參數

參數 說明
name 預設值為 ''
模組名稱。只有當這個模組是根模組時 (也就是不會依附於其他模組),才能省略這個屬性。有效的模組名稱必須:1) 只能包含小寫字母 (a-z)、數字 (0-9)、半形句點 (.)、連字號 (-) 和底線 (_);2) 以小寫字母開頭;3) 以小寫字母或數字結尾。
version 預設值為 ''
模組版本。只有當這個模組是根模組時 (也就是不會依附於其他模組),才能省略這個屬性。版本必須採用寬鬆的 SemVer 格式,詳情請參閱說明文件
compatibility_level 預設為 0
模組的相容性層級;每當推出不相容的重大變更時,就應變更這個層級。就 SemVer 而言,這基本上是模組的「主要版本」,但它並未內嵌在版本字串本身,而是以獨立欄位存在。相容性等級不同的模組會參與版本解析,就像名稱不同的模組一樣,但最終的依附元件圖表不得包含名稱相同但相容性等級不同的多個模組 (除非 multiple_version_override 生效)。詳情請參閱說明文件
repo_name 預設值為 ''
代表這個模組的存放區名稱,模組本身會看到這個名稱。根據預設,存放區名稱就是模組名稱。如果專案使用的存放區名稱與模組名稱不同,可以指定這個屬性,方便遷移。
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 必要
要套用這項覆寫的 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 string 的可疊代項目; 預設為 []
修補程式套用後,要在 Linux/macOS 上套用的 Bash 指令序列。
patch_strip 預設值為 0
與 Unix patch 的 --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 必要
要使用的模組擴充功能名稱。Starlark 檔案必須匯出具有這個名稱的符號。
dev_dependency 預設值為 False
如果為 true,且目前模組不是根模組或已啟用 `--ignore_dev_dependency`,系統會忽略這個模組擴充功能的使用情形。
isolate 預設值為 False
Experimental。這項參數仍在實驗階段,因此隨時可能變動。因此請勿依賴這項功能。您可以將 ---experimental_isolated_extension_usages 設為 true,以實驗性質啟用這項功能。如果設為 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 檔案中直接做為存放區規則叫用的 Proxy 值 (一或多次)。以這種方式建立的存放區只會顯示在目前的模組中,名稱是透過 Proxy 上的 name 屬性宣告。您也可以在 Proxy 上使用隱含的布林值 dev_dependency 屬性,表示只有在目前模組是根模組時,才能建立特定存放區。

參數

參數 說明
repo_rule_bzl_file 必要
定義存放區規則的 Starlark 檔案標籤。
repo_rule_name 必要
要使用的 repo 規則名稱。Starlark 檔案必須匯出具有這個名稱的符號。