Plugin Java

Nhà cung cấp đóng gói thông tin về các trình bổ trợ Java.

Hiện tại, loại trình bổ trợ duy nhất được hỗ trợ là trình xử lý chú giải.

Hội viên

JavaPluginInfo

JavaPluginInfo JavaPluginInfo(runtime_deps, *, processor_class, data=[], generates_api=False)

Hàm khởi tạo JavaPluginInfo.

Thông số

Thông số Nội dung mô tả
runtime_deps sequence of JavaInfos; bắt buộc
Thư viện chứa trình xử lý chú giải.
processor_class string; or None; bắt buộc
Tên lớp đủ điều kiện mà trình biên dịch Java sử dụng làm điểm truy cập đến trình xử lý chú giải.
data sequence of Files; or depset of Files; mặc định = []
Các tệp mà trình xử lý chú giải này cần trong quá trình thực thi.
generates_api default = False
Đặt thành true khi trình xử lý chú giải này tạo mã API.

Trình xử lý chú giải như vậy được áp dụng cho đích Java trước khi tạo các tệp tiêu đề (có chứa chữ ký phương thức). Khi không có trình bổ trợ API nào, các tệp tiêu đề sẽ được tạo từ các nguồn, giúp giảm đường dẫn quan trọng.

CẢNH BÁO: Tham số này ảnh hưởng đến hiệu suất của bản dựng, bạn chỉ nên sử dụng tham số này nếu cần.

api_generating_plugins

JavaPluginData JavaPluginInfo.api_generating_plugins

Trả về dữ liệu về việc API tạo trình bổ trợ do mục tiêu này xác định hoặc xuất.

Các trình xử lý chú giải này được áp dụng cho đích Java trước khi tạo các jars tiêu đề (chứa chữ ký phương thức). Khi không có trình bổ trợ API nào, các tệp tiêu đề sẽ được tạo từ các nguồn, giúp giảm đường dẫn quan trọng.

api_generating_plugins là một tập con của plugins.

java_outputs

list JavaPluginInfo.java_outputs

Trả về thông tin về đầu ra của mục tiêu giống Java/Java này.

trình bổ trợ

JavaPluginData JavaPluginInfo.plugins

Trả về dữ liệu về tất cả trình bổ trợ mà một đích tiêu thụ sẽ áp dụng.

Thường thì đây là chính java_plugin hoặc java_library xuất một hoặc nhiều trình bổ trợ.

java_library chạy quá trình xử lý chú giải trong đó tất cả trình bổ trợ trong trường này xuất hiện trong các thuộc tính depsplugins.

to_json

string JavaPluginInfo.to_json()

Không dùng nữa. API này không được dùng nữa và sẽ sớm bị xoá. Vui lòng không phụ thuộc vào công cụ này. Tính năng này bị tắt bằng ---incompatible_struct_has_no_methods. Sử dụng cờ này để xác minh rằng mã của bạn tương thích với việc mã sắp bị xoá.
Tạo một chuỗi JSON từ tham số cấu trúc. Phương thức này chỉ hoạt động nếu tất cả phần tử cấu trúc (theo quy tắc đệ quy) là chuỗi, số nguyên, boolean, các cấu trúc khác, danh sách các loại này hoặc từ điển có khoá chuỗi và giá trị thuộc các kiểu này. Dấu ngoặc kép và các dòng mới trong chuỗi sẽ được thoát. Ví dụ:
struct(key=123).to_json()
# {"key":123}

struct(key=True).to_json()
# {"key":true}

struct(key=[1, 2, 3]).to_json()
# {"key":[1,2,3]}

struct(key='text').to_json()
# {"key":"text"}

struct(key=struct(inner_key='text')).to_json()
# {"key":{"inner_key":"text"}}

struct(key=[struct(inner_key=1), struct(inner_key=2)]).to_json()
# {"key":[{"inner_key":1},{"inner_key":2}]}

struct(key=struct(inner_key=struct(inner_inner_key='text'))).to_json()
# {"key":{"inner_key":{"inner_inner_key":"text"}}}
.

Không dùng nữa: thay vào đó, hãy dùng json.encode(x) hoặc json.encode_indent(x). Các hàm này hoạt động với các giá trị không phải là cấu trúc và không làm ô nhiễm không gian tên của trường cấu trúc.

to_proto

string JavaPluginInfo.to_proto()

Không dùng nữa. API này không được dùng nữa và sẽ sớm bị xoá. Vui lòng không phụ thuộc vào công cụ này. Tính năng này bị tắt bằng ---incompatible_struct_has_no_methods. Sử dụng cờ này để xác minh rằng mã của bạn tương thích với việc mã sắp bị xoá.
Tạo một tin nhắn văn bản từ tham số cấu trúc. Phương thức này chỉ hoạt động nếu tất cả các phần tử cấu trúc (theo quy tắc đệ quy) là chuỗi, số nguyên, boolean, các cấu trúc hay lệnh chính tả khác hoặc danh sách thuộc những loại này. Dấu ngoặc kép và các dòng mới trong chuỗi sẽ được thoát. Các khoá cấu trúc được lặp lại theo thứ tự được sắp xếp. Ví dụ:
struct(key=123).to_proto()
# key: 123

struct(key=True).to_proto()
# key: true

struct(key=[1, 2, 3]).to_proto()
# key: 1
# key: 2
# key: 3

struct(key='text').to_proto()
# key: "text"

struct(key=struct(inner_key='text')).to_proto()
# key {
#   inner_key: "text"
# }

struct(key=[struct(inner_key=1), struct(inner_key=2)]).to_proto()
# key {
#   inner_key: 1
# }
# key {
#   inner_key: 2
# }

struct(key=struct(inner_key=struct(inner_inner_key='text'))).to_proto()
# key {
#    inner_key {
#     inner_inner_key: "text"
#   }
# }

struct(foo={4: 3, 2: 1}).to_proto()
# foo: {
#   key: 4
#   value: 3
# }
# foo: {
#   key: 2
#   value: 1
# }

Không dùng nữa: thay vào đó, hãy dùng proto.encode_text(x).