java_Common

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 đường dẫn lớp khởi động

compile

JavaInfo 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, host_javabase=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/jar nguồn Java từ việc triển khai quy tắc Starlark và trả về một nhà cung cấp đại diện cho kết quả biên dịch và có thể thêm vào nhóm nhà cung cấp do quy tắc này tạo ra.

Các tham số

Thông số Nội dung mô tả
ctx bắt buộc
Ngữ cảnh quy tắc.
source_jars sequence of Files; default = []
Danh sách các tệp jar sẽ được biên dịch. Phải chỉ định ít nhất một trong số các source_jars hoặc source_file.
source_files sequence of Files; default = []
Danh sách tệp nguồn Java cần biên dịch. Phải chỉ định ít nhất một trong số các source_jars hoặc source_file.
output bắt buộc
output_source_jar File; or None; mặc định = Không có
Tệp nguồn đầu ra. Không bắt buộc. Giá trị mặc định là "{output_jar}-src.jar" nếu bạn không đặt chính sách này.
javac_opts sequence of strings; default = []
Danh sách các tuỳ chọn javac mà bạn muốn. Không bắt buộc.
deps sequence of JavaInfos; mặc định = []
Danh sách các phần phụ thuộc. Không bắt buộc.
runtime_deps sequence of JavaInfos; mặc định = []
Danh sách các phần phụ thuộc thời gian chạy. Không bắt buộc.
exports sequence of JavaInfos; mặc định = []
Danh sách tệp dữ liệu xuất. Không bắt buộc.
plugins sequence of JavaPluginInfos; or sequence of JavaInfos; default = []
Danh sách trình bổ trợ. Không bắt buộc.
exported_plugins sequence of JavaPluginInfos; or sequence of JavaInfos; mặc định = []
Danh sách các trình bổ trợ đã xuất. Không bắt buộc.
native_libraries sequence of CcInfos; mặc định = []
CC phần phụ thuộc thư viện gốc cần thiết cho thư viện này.
annotation_processor_additional_inputs sequence of Files; default = []
Danh sách 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 sequence of Files; default = []
Danh sách kết quả đầ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 default = 'ERROR'
Một chuỗi chỉ định cách xử lý các phần phụ thuộc nghiêm ngặt. Giá trị có thể là: "OFF", "ERROR", "WARN" và "DEFAULT". Để biết thêm chi tiết, hãy xem /docs/user-manual#flag--strict_java_deps. Theo mặc định, lỗi "ERROR".
java_toolchain bắt buộc
Cần sử dụng JavaToolchainInfo cho quá trình biên dịch này. Bắt buộc.
host_javabase mặc định = Không có
Không dùng nữa. Tham số 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_java_common_parameters. 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á.
Không dùng nữa: Bạn có thể bỏ tham số này (host_javabase được cung cấp bằng java_toolchain)
sourcepath sequence of Files; mặc định = []
resources sequence of Files; mặc định = []
resource_jars sequence of Files; mặc định = []
classpath_resources sequence of Files; mặc định = []
mặc định = Sai
enable_annotation_processing default = True
Tắt tính năng xử lý chú giải trong phần 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 phần phụ thuộc export_plugins bị bỏ qua.
enable_compile_jar_action default = True
Bật tính năng biên dịch tiêu đề hoặc tạo ijar. Nếu bạn đặt chính sách này thành False, thì chính sách này sẽ buộc sử dụng tệp jar đầy đủ lớp trong đường dẫn lớp biên dịch của bất kỳ phần phụ thuộc nào. Thao tác này nhằm mục đích sử dụng cho các mục tiêu không phải là 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 sequence of strings; mặc định = []
Cho phép thư viện này truy cập vào /đã cho. Không bắt buộc.
add_opens sequence of strings; default = []
Cho phép thư viện này truy cập phản ánh /đã cho. Không bắt buộc.

JavaPluginInfo

Provider java_common.JavaPluginInfo

Khoá dùng để truy xuất trình cung cấp có chứa thông tin về trình bổ trợ Java. Có thể truy cập cùng một giá trị như JavaPluginInfo.
Ưu tiên sử dụng JavaPluginInfo trong mã mới.

JavaRuntimeInfo

Provider java_common.JavaRuntimeInfo

Khoá dùng để truy xuất nhà cung cấp có chứa thông tin về 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 có chứa thông tin về chuỗi công cụ Java đang được sử dụng.

make_non_strict

JavaInfo java_common.make_non_strict(java_info)

Trả về một trình cung cấp Java mới có phần các tệp jar trực tiếp là sự hợp nhất của cả các tệp jar trực tiếp và gián tiếp của trình cung cấp Java đã cho.

Các tham số

Thông số Nội dung mô tả
java_info bắt buộc
Thông tin java.

hợp nhất

JavaInfo java_common.merge(providers, *, merge_java_outputs=True, merge_source_jars=True)

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

Các tham số

Thông số Nội dung mô tả
providers sequence of JavaInfos; bắt buộc
Danh sách các nhà cung cấp cần hợp nhất.
merge_java_outputs mặc định = Đúng
merge_source_jars mặc định = Đúng

pack_sources

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

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

JavaInfo#source_jar

.Bắt buộc phải có ít nhất một trong các thông số output_jar hoặc output_source_jar.

Các tham số

Thông số Nội dung mô tả
actions bắt buộc
ctx.actions
output_jar File; or None; mặc định = Không
Không dùng nữa. Tham số 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_java_common_parameters. 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á.
Không dùng nữa: Tệp đầu ra của quy tắc. Dùng để đặt tên cho jar nguồn thu được. Tham số này đặt tham số output_source_jar thành `{output_jar}-src.jar`.Thay vào đó, hãy sử dụng tham số output_source_jar.
output_source_jar File; or None; mặc định = Không có
Tệp nguồn đầu ra.
sources sequence of Files; default = []
Danh sách tệp nguồn Java sẽ được đóng gói vào tệp nguồn.
source_jars sequence of Files; default = []
Danh sách bình nguồn sẽ đóng gói vào bình nguồn.
java_toolchain bắt buộc
JavaToolchainInfo dùng để tìm công cụ ijar.
host_javabase mặc định = Không có
Không dùng nữa. Tham số 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_java_common_parameters. 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á.
Không dùng nữa: Bạn có thể bỏ tham số này (host_javabase được cung cấp bằng java_toolchain)
Có thể trả về None.

nhà cung cấp

Provider java_common.provider

Trả về trình cung cấp đã khai báo cho Java.
Giá trị có thể truy cập tương tự như JavaInfo.
Ưu tiên sử dụng JavaInfo trong mã mới.

run_ijar

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

Chạy ijar trên một bình, loại bỏ phần nội dung phương thức của nó. Điều này giúp giảm bớt việc tạo lại các tệp jar phụ thuộc trong bất kỳ quá trình biên dịch lại nào chỉ bao gồm một số 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.

Các tham số

Thông số Nội dung mô tả
actions bắt buộc
ctx.actions
jar bắt buộc
Tệp để chạy ijar.
target_label Label; or None; mặc định = Không có
Nhãn mục tiêu để đóng dấu trong lọ. Dùng để hỗ trợ add_dep. Thông thường, bạn sẽ chuyển ctx.label để đóng dấu cho tệp jar bằng nhãn của quy tắc hiện tại.
java_toolchain 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)

Đóng dấu một lọ có 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ể.

Các tham số

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

to_java_binary_info

JavaInfo java_common.to_java_binary_info(java_info)

Trả về bản sao của JavaInfo cho trước với thông tin tối thiểu được lệnh java_binary trả về

Các tham số

Thông số Nội dung mô tả
java_info bắt buộc
JavaInfo để cải thiện.