java_Common

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 bootclasspath

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, 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ừ quá trình triển khai một 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ể được thêm vào tập hợp nhà cung cấp do quy tắc này phát ra.

Thông số

Thông số Mô tả
ctx ctx; required
Ngữ cảnh quy tắc.
source_jars sequence của Files; mặc định là []
Danh sách các jar sẽ được 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 sequence của Files; mặc định là []
Một danh sách các tệp nguồn Java sẽ được 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 File; 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 bạn không đặt.
javac_opts sequence của string; mặc định là []
Một danh sách các lựa chọn javac mong muốn.
deps sequence của structs; mặc định là []
Danh sách các phần phụ thuộc.
runtime_deps sequence của structs; mặc định là []
Danh sách các phần phụ thuộc trong thời gian chạy.
exports sequence của structs; mặc định là []
Danh sách các tệp xuất.
plugins sequence của structs; hoặc sequence của structs; mặc định là []
Danh sách các trình bổ trợ.
exported_plugins sequence của struct; hoặc sequence của struct; mặc định là []
Danh sách các trình bổ trợ đã xuất.
native_libraries sequence của CcInfos; 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 sequence của Files; mặc định là []
Một danh sách các đầu vào mà thao tác biên dịch Java sẽ nhận ngoài các nguồn Java để xử lý chú giải.
annotation_processor_additional_outputs sequence của Files; mặc định là []
Một danh sách các đầ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; default is 'ERROR'
Một chuỗi chỉ định cách xử lý các deps 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 Thông tin; 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
BootClassPathInfo sẽ được dùng cho quá trình biên dịch này. Nếu có, hãy ghi đè bootclasspath được liên kết với java_toolchain đã cung cấp.
host_javabase mặc định là None
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 thông tin này. Tính năng này bị vô hiệu hoá bằng --incompatible_java_common_parameters. Hãy dùng cờ này để xác minh rằng mã của bạn tương thích với việc xoá sắp tới.
Không dùng nữa: Bạn có thể bỏ tham số này (host_javabase được cung cấp cùng với java_toolchain)
sourcepath sequence của Files; mặc định là []
resources sequence của Files; mặc định là []
resource_jars sequence của Files; mặc định là []
classpath_resources sequence của Files; mặc định là []
bool; mặc định là False
enable_annotation_processing bool; default is True
Disables annotation processing in this compilation, causing any annotation processors provided in plugins or in exported_plugins of deps to be ignored.
enable_compile_jar_action bool; default is True
Enables header compilation or ijar creation. 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 lớp đầy đủ trong đường dẫn lớp biên dịch của mọi đối tượng phụ thuộc. Việ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ó đối tượng phụ thuộc.
add_exports sequence của strings; giá trị mặc định là []
Cho phép thư viện này truy cập vào /đã cho.
add_opens sequence của strings; giá trị mặc định là []
Cho phép thư viện này truy cập một cách 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ề 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 dùng.

hợp nhất

struct java_common.merge(providers)

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

Thông số

Thông số Mô tả
providers sequence của structs; required
Danh sách các nhà cung cấp cần hợp nhất.

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 các 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 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.

Thông số

Thông số Mô tả
actions actions; required
ctx.actions
output_jar Tệp; hoặc None; mặc định là None
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 thông tin này. Tính năng này bị vô hiệu hoá bằng --incompatible_java_common_parameters. Hãy dùng cờ này để xác minh rằng mã của bạn tương thích với việc xoá sắp tới.
Không dùng nữa: Tệp jar đầu ra của quy tắc. Dùng để đặt tên cho tệp jar nguồn kết quả. Tham số này đặt tham số output_source_jar thành `{output_jar}-src.jar`.Thay vào đó, hãy sử dụng trực tiếp tham số output_source_jar.
output_source_jar File; hoặc None; mặc định là None
Tệp jar nguồn đầu ra.
sources sequence của File; mặc định là []
Một danh sách các tệp nguồn Java sẽ được đóng gói vào jar nguồn.
source_jars sequence của Files; mặc định là []
Một danh sách các jar nguồn sẽ được đóng gói vào jar nguồn.
java_toolchain Thông tin; bắt buộc
Một JavaToolchainInfo được dùng để tìm công cụ ijar.
host_javabase mặc định là None
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 thông tin này. Tính năng này bị vô hiệu hoá bằng --incompatible_java_common_parameters. Hãy dùng cờ này để xác minh rằng mã của bạn tương thích với việc xoá sắp tới.
Không dùng nữa: Bạn có thể bỏ tham số này (host_javabase được cung cấp cùng với java_toolchain)

run_ijar

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

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

Thông số

Thông số Mô tả
actions actions; required
ctx.actions
jar File; required
The jar to run ijar on.
target_label Nhãn; hoặc None; giá trị mặc định là None
Nhãn mục tiêu để đóng dấu vào tệp jar. Dùng để hỗ trợ add_dep. Thông thường, bạn sẽ truyền ctx.label để đóng dấu jar bằng nhãn của quy tắc hiện tại.
java_toolchain Thông tin; bắt buộc
Một JavaToolchainInfo được 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ọ 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ể.

Thông số

Thông số Mô tả
actions actions; required
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 vào tệp jar. Dùng để hỗ trợ add_dep. Thông thường, bạn sẽ truyền ctx.label để đóng dấu jar bằng nhãn của quy tắc hiện tại.
java_toolchain Thông tin; bắt buộc
Một JavaToolchainInfo được dùng để tìm công cụ stamp_jar.