Plugin Java

Một trì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.

Tham số

Thông số 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 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 cần trong quá trình thực thi.
generates_api mặc định = Sai
Đặ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 một mục tiêu Java trước khi tạo các tệp jar tiêu đề (chứa chữ ký phương thức). Khi không có trình bổ trợ API, 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, chỉ sử dụng 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 đó được áp dụng cho một mục tiêu Java trước khi tạo các jar tiêu đề (chứa chữ ký phương thức). Khi không có trình bổ trợ API, các tệp tiêu đề sẽ được tạo từ các nguồn này, giúp giảm bớt đường dẫn quan trọng.

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

java_outputs

list JavaPluginInfo.java_outputs

Trả về thông tin về kết quả 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 mục tiêu tiêu thụ nên áp dụng.

Đây thường 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ợ của trường này đều 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 đừng phụ thuộc vào tính năng này. Tính năng này đã bị tắt với ---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 yêu cầu sắp xoá.
Tạo một chuỗi JSON từ tham số cấu trúc. Phương thức này chỉ hiệu quả nếu tất cả các phần tử cấu trúc (theo đệ quy) là chuỗi, số nguyên, boolean, 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. Các dấu ngoặc kép và các dòng mới trong chuỗi là ký tự 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 sử dụng json.encode(x) hoặc json.encode_indent(x). Tệp này phù hợp với các giá trị không phải cấu trúc và không gây ô 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 đừng phụ thuộc vào tính năng này. Tính năng này đã bị tắt với ---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 yêu cầu sắp 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) là chuỗi, int, boolean, các cấu trúc khác, lệnh chính tả hoặc danh sách thuộc các loại này. Các dấu ngoặc kép và các dòng mới trong chuỗi là ký tự thoát. 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 sử dụng proto.encode_text(x).