規則
proto_lang_toolchain
查看規則來源proto_lang_toolchain(name, blacklisted_protos, command_line, compatible_with, deprecation, distribs, exec_compatible_with, exec_properties, features, licenses, mnemonic, output_files, plugin, plugin_format_flag, progress_message, proto_compiler, restricted_to, runtime, tags, target_compatible_with, testonly, visibility)
如果使用 Bazel,請從 https://github.com/bazelbuild/rules_proto 載入規則。
指定 LANG_proto_library 規則的方式 (例如java_proto_library
) 應叫用 Proto 編譯器。部分 LANG_proto_library 規則可讓您使用指令列標記指定要使用的工具鏈;請參閱相關說明文件。
除非您想調整 Java 編譯器,否則通常不應編寫這類規則。
沒有編譯器。系統會從我們附加的 proto_library 規則取得 proto 編譯器。是
以指令列旗標的形式傳送至 Blaze。
部分功能需要在 proto_library 規則本身叫用 proto-compiler。
強制要求 LANG_proto_library 使用的編譯器與 LANG_proto_library 相同
proto_library
有。
範例
簡單的範例如下:
proto_lang_toolchain( name = "javalite_toolchain", command_line = "--javalite_out=shared,immutable:$(OUT)", plugin = ":javalite_plugin", runtime = ":protobuf_lite", )
引數
屬性 | |
---|---|
name |
名稱 (必填) 這個目標的專屬名稱。 |
blacklisted_protos
|
標籤清單;預設為 srcs 屬性中的檔案產生程式碼:
blacklisted_protos 。
這項功能適用於已連結至 proto 執行階段的 .proto 檔案,例如 any.proto 。 |
command_line
|
String;必選 這個值會傳遞至 Proto 編譯器,以產生程式碼。只包含此程式碼產生器/外掛程式專屬的部分 (例如,請勿加入 -I 參數)
|
mnemonic
|
String;預設值為 |
output_files
|
String;預設值為 command_line 中的 $(OUT) 格式設定方式,可透過單一檔案的路徑或多個檔案的輸出目錄。可能的值為「single」(單一) 和「multiple」(多個)。
|
plugin
|
標籤;預設為 --plugin=protoc-gen-PLUGIN=<executable>.
|
plugin_format_flag
|
字串;預設為 --plugin=protoc-gen-PLUGIN=<executable>.
|
progress_message
|
字串;預設為 |
proto_compiler
|
標籤;預設為 |
runtime
|
標籤;預設為 |
proto_library
查看規則來源proto_library(name, deps, srcs, data, allow_exports, compatible_with, deprecation, distribs, exec_compatible_with, exec_properties, exports, features, import_prefix, licenses, restricted_to, strip_import_prefix, tags, target_compatible_with, testonly, visibility)
已淘汰,請改用 https://github.com/bazelbuild/rules_proto。
使用 proto_library
定義可用於多種語言的通訊協定緩衝區程式庫。proto_library
可能會列在支援規則 (例如 java_proto_library
) 的 deps
子句中。
透過指令列編譯時,proto_library
會建立名為
foo-descriptor-set.proto.bin
,這是針對
傳送規則 srcs 的訊息。這個檔案是經過序列化的 FileDescriptorSet
,相關說明請參閱 https://developers.google.com/protocol-buffers/docs/techniques#self-description。
其中只包含以下管理員直接提到的 .proto
檔案相關資訊
proto_library
規則;及傳輸描述元集的集合
[ProtoInfo].transitive_descriptor_sets
Starlark 供應商。
請參閱 ProtoInfo.java
中的說明文件。
建議的程式碼整理方式:
- 每個
.proto
檔案只能有一個proto_library
規則。 - 名稱為
foo.proto
的檔案會位於名稱為foo_proto
的規則中,且位於同一個套件中。 - 納入名為
proto_library
的[language]_proto_library
應呼叫foo_proto
foo_[language]_proto
,且位於同一個套件中。
引數
屬性 | |
---|---|
name |
名稱;必選 這個目標的專屬名稱。 |
deps
|
標籤清單;預設為 proto_library 規則清單。
proto_library 只能依附於其他項目
proto_library 個目標。
可能不會依附語言專屬程式庫。
|
srcs
|
標籤清單;預設為 .proto 和 .protodevel 檔案清單。這通常是不會為空的清單。srcs 可為空白的一個用途是別名程式庫。這是
proto_library 規則在 deps 中有一或多個其他 proto_library。
例如,您可以使用這個模式,以持久名稱匯出公開 API。 |
allow_exports
|
標籤;預設為 |
exports
|
標籤清單;預設為 |
import_prefix
|
String;預設值為 設定後,這項規則的 系統會先移除 |
strip_import_prefix
|
字串;預設為 設定後,這項規則的 如果是相對路徑 (開頭不是斜線),則會視為相對於套件的路徑。如果是絕對路徑,系統會將其視為相對於存放區的路徑。 這個前置字元會在移除後,新增至 |