규칙
- <ph type="x-smartling-placeholder"></ph> proto_lang_toolchain
- <ph type="x-smartling-placeholder"></ph> proto_library
proto_lang_toolchain
<ph type="x-smartling-placeholder"></ph> 규칙 소스 보기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.
googleapis_proto_library 규칙 (예: java_proto_library
)가
proto-compiler에 의해 결정됩니다.
일부 LANG_proto_library 규칙에서는 명령줄 플래그를 사용하여 사용할 툴체인을 지정할 수 있습니다.
해당 문서를 참조하세요.
일반적으로 이러한 종류의 규칙은 Java 컴파일러를 조정해야 합니다
컴파일러는 없습니다. proto-compiler는 연결하는 proto_library 규칙에서 가져옵니다. 그것은
명령줄 플래그로 Blaze에 전달됩니다.
여러 기능을 사용하려면 proto_library 규칙 자체에서 proto 컴파일러를 호출해야 합니다.
googleapis_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-compiler로 전달되어 코드를 생성합니다. 일부분만 포함 이 코드 생성기/플러그인에만 해당 (예: -I 매개변수 포함 안 됨) <ph type="x-smartling-placeholder">
|
mnemonic
|
String; 기본값은 |
output_files
|
String; 기본값은 command_line 의 $(OUT) 형식을 지정하는 방법을 제어합니다.
파일이 여러 개인 경우 단일 파일 또는 출력 디렉터리의 경로
가능한 값은 'single', 'multiple'입니다.
|
plugin
|
라벨 기본값은 --plugin=protoc-gen-PLUGIN=<executable>.
|
plugin_format_flag
|
String; 기본값은 --plugin=protoc-gen-PLUGIN=<executable>.
|
progress_message
|
String; 기본값은 |
proto_compiler
|
라벨 기본값은 |
runtime
|
라벨 기본값은 |
proto_library
<ph type="x-smartling-placeholder"></ph> 규칙 소스 보기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
:
메시지를 보냅니다. 파일은 직렬화된 FileDescriptorSet
입니다.
설명
<ph type="x-smartling-placeholder"></ph>
https://developers.google.com/protocol-buffers/docs/techniques#self-description.
개발자가 직접 언급한 .proto
파일에 관한 정보만 포함되어 있습니다.
proto_library
규칙; 전이 설명어 집합의 수집은
[ProtoInfo].transitive_descriptor_sets
Starlark 제공업체
ProtoInfo.java
문서를 참고하세요.
권장 코드 구성:
-
.proto
파일당proto_library
규칙 1개 - 이름이
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 는 비워 둘 수 있는 alias-library입니다. 이것은
proto_library 규칙에 deps 에 다른 proto_library가 하나 이상 있습니다.
이 패턴은 예를 들어 영구 이름으로 공개 API를 내보낼 수 있습니다
|
allow_exports
|
라벨 기본값은 |
exports
|
라벨 목록 기본값은 |
import_prefix
|
String; 기본값은 설정되면 이 규칙의
|
strip_import_prefix
|
String; 기본값은 설정되면 이 규칙의 슬래시로 시작하지 않는 상대 경로인 경우 패키지 상대 경로로 간주됩니다. 있습니다 절대 경로인 경우 저장소 상대 경로로 간주됩니다.
|