java_Common

Báo cáo vấn đề Xem nguồn Nightly · 8.0 7.4 . 7.3 · 7.2 · 7.1 · 7.0 · 6.5

Các tiện ích hỗ trợ biên dịch Java trong Starlark.

Hội viên

BootClassPathInfo

Provider java_common.BootClassPathInfo

Nhà cung cấp dùng để cung cấp thông tin về đường dẫn lớp khởi động

biên dịch

struct java_common.compile(ctx, *, source_jars=[], source_files=[], output, output_source_jar=None, javac_opts=[], deps=[], runtime_deps=[], exports=[], plugins=[], exported_plugins=[], native_libraries=[], annotation_processor_additional_inputs=[], annotation_processor_additional_outputs=[], strict_deps='ERROR', java_toolchain, bootclasspath=None, sourcepath=[], resources=[], resource_jars=[], classpath_resources=[], neverlink=False, enable_annotation_processing=True, enable_compile_jar_action=True, add_exports=[], add_opens=[])

Biên dịch các tệp nguồn/tệp jar Java từ việc triển khai quy tắc Starlark và trả về một trình cung cấp đại diện cho kết quả biên dịch và có thể được thêm vào tập hợp trình cung cấp do quy tắc này phát ra.

Tham số

Thông số Mô tả
ctx ctx; bắt buộc
Ngữ cảnh quy tắc.
source_jars trình tự của Tệp; mặc định là []
Danh sách các tệp jar cần biên dịch. Bạn phải chỉ định ít nhất một trong hai thuộc tính source_jars hoặc source_files.
source_files trình tự của Tệp; giá trị mặc định là []
Danh sách các tệp nguồn Java cần biên dịch. Bạn phải chỉ định ít nhất một trong hai thuộc tính source_jars hoặc source_files.
output Tệp; bắt buộc
output_source_jar Tệp; hoặc None; mặc định là None
Tệp jar nguồn đầu ra. Mặc định là `{output_jar}-src.jar` nếu không được đặt.
javac_opts trình tự của chuỗi; mặc định là []
Danh sách các tuỳ chọn javac mong muốn.
deps trình tự của cấu trúc; giá trị mặc định là []
Danh sách các phần phụ thuộc.
runtime_deps trình tự của cấu trúc; giá trị mặc định là []
Danh sách các phần phụ thuộc thời gian chạy.
exports trình tự của cấu trúc; giá trị mặc định là []
Danh sách các tệp xuất.
plugins trình tự của cấu trúc; hoặc trình tự của cấu trúc; mặc định là []
Danh sách trình bổ trợ.
exported_plugins trình tự của cấu trúc; hoặc trình tự của cấu trúc; mặc định là []
Danh sách các trình bổ trợ đã xuất.
native_libraries trình tự của CcInfo; giá trị mặc định là []
các phần phụ thuộc thư viện gốc CC cần thiết cho thư viện này.
annotation_processor_additional_inputs trình tự của Tệp; mặc định là []
Danh sách các dữ liệu đầu vào mà thao tác biên dịch Java sẽ thực hiện ngoài các nguồn Java để xử lý chú giải.
annotation_processor_additional_outputs trình tự của Tệp; mặc định là []
Danh sách đầu ra mà thao tác biên dịch Java sẽ xuất ra ngoài tệp jar lớp từ quá trình xử lý chú giải.
strict_deps string; giá trị mặc định là 'ERROR'
Một chuỗi chỉ định cách xử lý các phần phụ thuộc nghiêm ngặt. Các giá trị có thể sử dụng: "OFF", "ERROR", "WARN" và "DEFAULT". Để biết thêm thông tin, hãy xem --strict_java_deps flag. By default 'ERROR'.
java_toolchain Info; bắt buộc
Một JavaToolchainInfo sẽ được dùng cho quá trình biên dịch này. Bắt buộc.
bootclasspath mặc định là None
Một BootClassPathInfo sẽ được dùng cho quá trình biên dịch này. Ghi đè bootclasspath (nếu có) được liên kết với java_toolchain được cung cấp.
sourcepath trình tự của Tệp; mặc định là []
resources trình tự của Tệp; mặc định là []
resource_jars trình tự của Tệp; mặc định là []
classpath_resources trình tự của Tệp; mặc định là []
bool; mặc định là False
enable_annotation_processing bool; mặc định là True
Tắt tính năng xử lý chú giải trong quá trình biên dịch này, khiến mọi trình xử lý chú giải được cung cấp trong trình bổ trợ hoặc trong exported_plugins của phần phụ thuộc bị bỏ qua.
enable_compile_jar_action bool; giá trị mặc định là True
Cho phép biên dịch tiêu đề hoặc tạo ijar. Nếu bạn đặt thành False, thì thuộc tính này sẽ buộc sử dụng tệp jar lớp đầy đủ trong đường dẫn lớp biên dịch của mọi phần phụ thuộc. Việc này dành cho các mục tiêu không phải thư viện, chẳng hạn như các tệp nhị phân không có phần phụ thuộc.
add_exports trình tự của chuỗi; mặc định là []
Cho phép thư viện này truy cập vào /đã cho.
add_opens trình tự của chuỗi; giá trị mặc định là []
Cho phép thư viện này truy cập phản chiếu vào /đã cho.

JavaRuntimeInfo

Provider java_common.JavaRuntimeInfo

Khoá dùng để truy xuất trình cung cấp chứa thông tin về môi trường thời gian chạy Java đang được sử dụng.

JavaToolchainInfo

Provider java_common.JavaToolchainInfo

Khoá dùng để truy xuất trình cung cấp chứa thông tin về chuỗi công cụ Java đang được sử dụng.

hợp nhất

struct java_common.merge(providers)

Hợp nhất các trình cung cấp đã cho thành một JavaInfo duy nhất.

Tham số

Thông số Mô tả
providers trình tự của cấu trúc; bắt buộc
Danh sách các nhà cung cấp cần hợp nhất.

pack_sources

File java_common.pack_sources(actions, *, output_source_jar=None, sources=[], source_jars=[], java_toolchain)

Gói các nguồn và tệp nguồn vào một tệp jar nguồn duy nhất. Giá trị trả về thường được truyền đến

JavaInfo#source_jar

.Bạn phải cung cấp ít nhất một trong các tham số output_jar hoặc output_source_jar.

Tham số

Thông số Mô tả
actions actions; bắt buộc
ctx.actions
output_source_jar Tệp; hoặc None; mặc định là None
Tệp jar nguồn đầu ra.
sources trình tự của Tệp; giá trị mặc định là []
Danh sách các tệp nguồn Java cần được đóng gói vào tệp jar nguồn.
source_jars trình tự của Tệp; mặc định là []
Danh sách các tệp jar nguồn cần được đóng gói vào tệp jar nguồn.
java_toolchain Thông tin; bắt buộc
JavaToolchainInfo dùng để tìm công cụ ijar.

run_ijar

File java_common.run_ijar(actions, *, jar, target_label=None, java_toolchain)

Chạy ijar trên một tệp jar, loại bỏ phần nội dung phương thức của tệp jar đó. Điều này giúp giảm việc tạo lại các tệp jar phụ thuộc trong quá trình biên dịch lại chỉ bao gồm các thay đổi đơn giản đối với việc triển khai phương thức. Giá trị trả về thường được truyền đến JavaInfo#compile_jar.

Tham số

Thông số Mô tả
actions actions; bắt buộc
ctx.actions
jar Tệp; bắt buộc
Tệp jar để chạy ijar.
target_label Nhãn; hoặc None; giá trị mặc định là None
Một nhãn mục tiêu để đóng dấu cho tệp jar. Dùng để hỗ trợ add_dep. Thông thường, bạn sẽ truyền ctx.label để đóng dấu tệp jar bằng nhãn của quy tắc hiện tại.
java_toolchain Thông tin; bắt buộc
JavaToolchainInfo dùng để tìm công cụ ijar.

stamp_jar

File java_common.stamp_jar(actions, *, jar, target_label, java_toolchain)

Đánh dấu một tệp jar bằng nhãn mục tiêu để hỗ trợ add_dep. Giá trị trả về thường được truyền đến JavaInfo#compile_jar. Ưu tiên sử dụng run_ijar khi có thể.

Tham số

Thông số Mô tả
actions actions; bắt buộc
ctx.actions
jar Tệp; bắt buộc
Tệp jar để chạy stamp_jar.
target_label Nhãn; bắt buộc
Nhãn mục tiêu để đóng dấu cho tệp jar. Dùng để hỗ trợ add_dep. Thông thường, bạn sẽ truyền ctx.label để đóng dấu tệp jar bằng nhãn của quy tắc hiện tại.
java_toolchain Thông tin; bắt buộc
JavaToolchainInfo dùng để tìm công cụ stamp_jar.