規則
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-compiler。部分 LANG_proto_library 規則允許使用指令列標記指定要使用的工具鍊;請參閱相關說明文件。
除非您想調整 Java 編譯器,否則通常不應編寫這類規則。
沒有編譯器。proto-compiler 是從我們附加的 proto_library 規則取得。並以指令列標記的形式傳遞至 Blaze。部分功能需要在 proto_library 規則本身上叫用 proto 編譯器。
強制編譯器使用與 proto_library 相同的編譯器,對 LANG_proto_library 有益。
範例
簡單的範例如下:
proto_lang_toolchain(
    name = "javalite_toolchain",
    command_line = "--javalite_out=shared,immutable:$(OUT)",
    plugin = ":javalite_plugin",
    runtime = ":protobuf_lite",
)
引數
| 屬性 | |
|---|---|
| name | 名稱:必填 這個目標的專屬名稱。 | 
| blacklisted_protos | 標籤清單;預設值為  blacklisted_protos的srcs屬性中的檔案產生任何程式碼。這適用於已連結至 proto 執行階段的 .proto 檔案,例如any.proto。 | 
| command_line | 字串;必填這個值會傳遞至 proto 編譯器,以產生程式碼。只加入這個程式碼產生器/外掛程式專屬的部分 (例如,不要加入 -I 參數) 
 | 
| mnemonic | 字串;預設值為  | 
| output_files | 字串;預設值為  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 可能會列在支援規則的 deps 子句中,例如 java_proto_library。
在指令列上編譯時,proto_library 會建立名為 foo-descriptor-set.proto.bin 的檔案,這是規則 srcs 訊息的描述元集。這個檔案是序列化的 FileDescriptorSet,說明請見 
   https://developers.google.com/protocol-buffers/docs/techniques#self-description。
其中只包含 proto_library 規則直接提及的 .proto 檔案相關資訊;轉換描述元集集合可透過 [ProtoInfo].transitive_descriptor_sets Starlark 供應商取得。請參閱 ProtoInfo.java 中的說明文件。
建議的程式碼組織:
-  每個 .proto檔案只能有一條proto_library規則。
-  名為 foo.proto的檔案會位於名為foo_proto的規則中,而該規則位於同一個套件中。
-  包裝名為 foo_proto的proto_library的[language]_proto_library應稱為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 | 字串;預設值為  設定後,這個規則的  系統會先移除  | 
| strip_import_prefix | 字串;預設值為  設定後,這個規則的  如果是相對路徑 (開頭不是斜線),系統會將其視為套件相對路徑。如果是絕對路徑,則會解讀為存放區相對路徑。 系統會先移除前置字元,再將  |