MODULE.bazel 檔案

回報問題

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 預設值為 ''
封存檔案的預期檢查碼為 Subresource 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 必要
要新增為直接依附元件的模組名稱。
version 預設值為 ''
要新增為直接依附元件的模組版本。
max_compatibility_level 預設值為 -1
新增為直接依附元件的模組支援的最大 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 可疊代的字串;預設值為 []
套用修補程式後,要套用到 Linux/Macos 的 Bash 指令序列。
patch_strip 預設值為 0
與 Unix 修補程式的 --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 版本清單,可讓使用者宣告哪些 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 字串sequence;必要
要註冊的平台標籤。

register_toolchains

None register_toolchains(dev_dependency=False, *toolchain_labels)

選取這個模組時,指定要註冊的已定義工具鍊。應為絕對目標模式 (例如以 @// 開頭)。詳情請參閱工具鍊解析

參數

參數 說明
dev_dependency 預設值為 False
如果為 true,如果目前的模組不是根模組,或已啟用「--ignore_dev_dependency」,系統就不會註冊工具鍊。
toolchain_labels stringsequence;必要
要註冊的工具鍊標籤。標籤可包含 :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 必要
要使用的模組擴充功能名稱。包含這個名稱的符號必須由 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 檔案中直接叫用的 Proxy 值,用做存放區規則 (一或多次)。透過這種方式建立的 Repos 只會顯示在目前模組中,也就是在 Proxy 上使用 name 屬性宣告的名稱。隱含的布林值 dev_dependency 屬性可用於 Proxy 上,表示只有在目前模組為根模組時,系統才會建立特定存放區。

參數

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