Aturan
- java_binary
- java_import
- java_library
- java_lite_proto_library
- java_proto_library
- java_test
- java_package_configuration
- java_plugin
- java_runtime
- java_Toolchain
java_biner
Lihat sumber aturanjava_binary(name, deps, srcs, data, resources, args, classpath_resources, compatible_with, create_executable, deploy_env, deploy_manifest_lines, deprecation, distribs, env, exec_compatible_with, exec_properties, features, javacopts, jvm_flags, launcher, licenses, main_class, output_licenses, plugins, resource_jars, resource_strip_prefix, restricted_to, runtime_deps, stamp, tags, target_compatible_with, testonly, toolchains, use_launcher, use_testrunner, visibility)
Membuat arsip Java ("file jar"), plus skrip shell wrapper dengan nama yang sama dengan aturan. Skrip shell wrapper menggunakan classpath yang mencakup, antara lain, file jar untuk setiap library yang menjadi tempat biner bergantung.
Skrip wrapper menerima beberapa flag unik. Lihat
//src/main/java/com/google/devtools/build/lib/bazel/rules/java/java_stub_template.txt
untuk mengetahui daftar flag yang dapat dikonfigurasi dan variabel lingkungan yang diterima oleh wrapper.
Target output implisit
name.jar
: Arsip Java, yang berisi file class dan resource lainnya yang terkait dengan dependensi langsung biner.name-src.jar
: Arsip yang berisi sumber ("jarak sumber").name_deploy.jar
: Arsip Java yang cocok untuk deployment (hanya dibuat jika diminta secara eksplisit).Membuat target
<name>_deploy.jar
untuk aturan Anda akan membuat file jar mandiri dengan manifes yang memungkinkannya dijalankan dengan perintahjava -jar
atau dengan opsi--singlejar
skrip wrapper. Skrip skrip lebih disukai daripadajava -jar
karena juga meneruskan flag JVM dan opsi untuk memuat library native.Jar deployment berisi semua class yang akan ditemukan oleh classloader yang menelusuri classpath dari skrip wrapper biner dari awal hingga akhir. Class ini juga berisi library native yang diperlukan untuk dependensi. Keduanya secara otomatis dimuat ke JVM saat runtime.
Jika target Anda menentukan atribut launcher, maka file _deploy.jar akan berupa biner native, bukan file JAR normal. Ini akan berisi peluncur ditambah dependensi native (C++) dari aturan Anda, semua yang ditautkan ke biner statis. Byte file jar yang sebenarnya akan ditambahkan ke biner native tersebut, dengan membuat blob biner tunggal yang berisi kode Java dan file yang dapat dieksekusi. Anda dapat menjalankan file jar yang dihasilkan secara langsung seperti halnya mengeksekusi biner native.
name_deploy-src.jar
: Arsip yang berisi sumber yang dikumpulkan dari penutupan transitif target. Keduanya akan cocok dengan class dideploy.jar
kecuali jika jar tidak memiliki jar sumber yang cocok.
Atribut deps
tidak diizinkan dalam aturan java_binary
tanpa
srcs
; aturan tersebut memerlukan
main_class
yang disediakan oleh
runtime_deps
.
Cuplikan kode berikut mengilustrasikan kesalahan umum:
java_binary( name = "DontDoThis", srcs = [ ...,"GeneratedJavaFile.java"
, # a generated .java file ], deps = [":generating_rule",
], # rule that generates that file )
Sebagai gantinya, lakukan hal berikut:
java_binary( name = "DoThisInstead", srcs = [ ..., ":generating_rule", ], )
Argumen
Atribut | |
---|---|
name |
Nama unik untuk target ini. Sebaiknya gunakan nama file sumber yang merupakan titik entri utama aplikasi (tanpa ekstensi). Misalnya, jika titik entri Anda disebut Main.java , maka nama Anda dapat berupa Main .
|
deps
|
deps di Atribut umum yang ditentukan oleh sebagian besar aturan build.
|
srcs
|
File sumber jenis
File sumber jenis
Aturan: jika aturan (biasanya
Argumen ini hampir selalu diperlukan, kecuali jika
atribut |
resources
|
Jika ditentukan, resource tersebut akan dipaketkan dalam jar bersama dengan file Resource dapat berupa file sumber atau file yang dihasilkan. |
classpath_resources
|
Daftar resource yang harus ditempatkan di root hierarki java. Satu-satunya tujuan
atribut ini adalah untuk mendukung library pihak ketiga yang mengharuskan resource mereka
ditemukan di classpath sebagai tepat |
create_executable
|
launcher atau main_class
ditetapkan.
|
deploy_env
|
java_binary lainnya yang mewakili lingkungan
deployment untuk biner ini.
Tetapkan atribut ini saat membuat plugin yang akan dimuat oleh
java_binary lain.Setelan atribut ini akan mengecualikan semua dependensi dari classpath runtime (dan jar deployment) biner ini yang dibagikan antara biner ini dan target yang ditentukan dalam deploy_env .
|
deploy_manifest_lines
|
META-INF/manifest.mf yang dibuat untuk
target *_deploy.jar . Konten atribut ini tidak tunduk pada substitusi "Make variabel".
|
javacopts
|
Opsi compiler ini diteruskan ke javac setelah opsi compiler global. |
jvm_flags
|
Skrip wrapper untuk biner Java menyertakan definisi CLASSPATH (untuk menemukan semua jar dependen) dan memanggil penafsir Java yang tepat.
Command line yang dihasilkan oleh skrip wrapper menyertakan nama class utama yang diikuti dengan Perlu diketahui bahwa atribut ini tidak berpengaruh pada output
|
launcher
|
bin/java normal yang disertakan dengan JDK.
Targetnya harus berupa cc_binary . Setiap cc_binary yang
menerapkan
Java Invocation API dapat ditentukan sebagai nilai untuk atribut ini.
Secara default, Bazel akan menggunakan peluncur JDK normal (bin/java atau java.exe). Flag Bazel Perhatikan bahwa dependensi native (C++, SWIG, JNI) akan dibuat secara berbeda, bergantung pada apakah Anda menggunakan peluncur JDK atau peluncur lainnya:
Jika menggunakan peluncur selain JDK default, format
output |
main_class
|
main() untuk digunakan sebagai titik entri.
Jika aturan menggunakan opsi ini, daftar srcs=[...] tidak diperlukan.
Dengan demikian, dengan atribut ini, Anda dapat membuat file yang dapat dieksekusi dari library Java yang sudah
berisi satu atau beberapa metode main() .
Nilai atribut ini adalah nama class, bukan file sumber. Class harus
tersedia pada saat runtime: class dapat dikompilasi oleh aturan ini (dari |
plugins
|
java_plugin yang ditentukan dalam atribut ini akan dijalankan setiap kali aturan ini
dibuat. Library juga dapat mewarisi plugin dari dependensi yang menggunakan
exported_plugins . Resource yang dihasilkan oleh plugin akan disertakan dalam jar aturan yang dihasilkan.
|
resource_jars
|
|
resource_strip_prefix
|
Jika ditentukan, awalan jalur ini akan dihapus dari setiap file dalam atribut |
runtime_deps
|
deps biasa, ini akan muncul di classpath runtime, tetapi tidak seperti
itu, bukan di classpath waktu kompilasi. Dependensi yang hanya diperlukan saat runtime harus dicantumkan di sini. Alat analisis dependensi harus mengabaikan target yang muncul di
runtime_deps dan deps .
|
stamp
|
Biner yang distempel tidak dibuat ulang kecuali jika dependensinya berubah. |
use_launcher
|
Jika atribut ini ditetapkan ke false, atribut
peluncur dan flag
|
use_testrunner
|
com.google.testing.junit.runner.BazelTestRunner ) sebagai
titik entri utama untuk program Java, dan berikan class pengujian
kepada runner pengujian sebagai nilai properti sistem
bazel.test_suite .
Anda dapat menggunakan ini untuk mengganti perilaku
default, yaitu menggunakan runner pengujian untuk
aturan java_test ,
dan tidak menggunakannya untuk aturan java_binary . kecil kemungkinan Anda
ingin melakukannya. Salah satu penggunaannya adalah untuk aturan
AllTest yang dipanggil oleh aturan lain (misalnya, untuk menyiapkan database sebelum menjalankan pengujian). Aturan AllTest
harus dideklarasikan sebagai java_binary , tetapi tetap
harus menggunakan runner pengujian sebagai titik entri utamanya.
Nama class test runner dapat diganti dengan atribut main_class .
|
java_import
Lihat sumber aturanjava_import(name, deps, data, compatible_with, constraints, deprecation, distribs, exec_compatible_with, exec_properties, exports, features, jars, licenses, neverlink, proguard_specs, restricted_to, runtime_deps, srcjar, tags, target_compatible_with, testonly, visibility)
Aturan ini mengizinkan penggunaan file .jar
yang telah dikompilasi sebelumnya sebagai library untuk aturan java_library
dan java_binary
.
Contoh
java_import( name = "maven_model", jars = [ "maven_model/maven-aether-provider-3.2.3.jar", "maven_model/maven-model-3.2.3.jar", "maven_model/maven-model-builder-3.2.3.jar", ], )
Argumen
Atribut | |
---|---|
name |
Nama unik untuk target ini. |
deps
|
|
constraints
|
|
exports
|
|
jars
|
|
neverlink
|
tools.jar untuk apa pun yang berjalan di JDK standar.
|
proguard_specs
|
android_binary mana pun, bergantung pada library ini.
File yang disertakan di sini hanya boleh memiliki aturan idempoten, yaitu -dontnote, -dontwarn,
asumsinosideef, dan aturan yang diawali dengan -keep. Opsi lainnya hanya dapat muncul dalam proguard_spec android_binary , untuk memastikan penggabungan non-tekologis.
|
runtime_deps
|
|
srcjar
|
|
library_java
Lihat sumber aturanjava_library(name, deps, srcs, data, resources, compatible_with, deprecation, distribs, exec_compatible_with, exec_properties, exported_plugins, exports, features, javacopts, licenses, neverlink, plugins, proguard_specs, resource_jars, resource_strip_prefix, restricted_to, runtime_deps, tags, target_compatible_with, testonly, visibility)
Aturan ini mengompilasi dan menautkan sumber ke dalam file .jar
.
Target output implisit
libname.jar
: Arsip Java yang berisi file class.libname-src.jar
: Arsip yang berisi sumber ("jarak sumber").
Argumen
Atribut | |
---|---|
name |
Nama unik untuk target ini. |
deps
|
deps di Atribut umum yang ditentukan oleh sebagian besar aturan build.
Jar yang dibuat oleh aturan
Sebaliknya, target dalam atribut |
srcs
|
File sumber jenis
File sumber jenis
Aturan: jika aturan (biasanya
Argumen ini hampir selalu diperlukan, kecuali jika
atribut |
data
|
data di Atribut umum yang ditentukan oleh sebagian besar aturan build.
Saat mem-build |
resources
|
Jika ditentukan, resource tersebut akan dipaketkan dalam jar bersama dengan file Resource dapat berupa file sumber atau file yang dihasilkan. |
exported_plugins
|
java_plugin (misalnya pemroses anotasi) yang akan diekspor ke library yang langsung bergantung pada library ini.
Daftar |
exports
|
Aturan listingan di sini akan membuat aturan tersebut tersedia untuk aturan induk, seolah-olah induk tersebut secara eksplisit
bergantung pada aturan ini. Hal ini tidak berlaku untuk
Ringkasan: aturan X dapat mengakses kode di Y jika ada jalur dependensi di antara keduanya, yang dimulai dengan tepi
Asumsikan A bergantung pada B dan B bergantung pada C. Dalam hal ini,
C adalah dependensi transitif A, jadi mengubah sumber C dan mem-build ulang A akan
mem-build ulang semuanya dengan benar. Namun, A tidak akan dapat menggunakan class di C. Untuk memungkinkannya, A harus mendeklarasikan C dalam Penutupan library yang diekspor tersedia untuk semua aturan induk langsung. Ambil contoh yang sedikit berbeda: A bergantung pada B, B bergantung pada C dan D, dan juga mengekspor C tetapi tidak D. Sekarang A memiliki akses ke C, tetapi tidak ke D. Sekarang, jika C dan D mengekspor beberapa library, C' dan D', masing-masing hanya dapat mengakses C', tetapi tidak D'.
Penting: aturan yang diekspor bukan dependensi reguler. Sesuai dengan contoh sebelumnya,
jika B mengekspor C dan juga ingin menggunakan C, C juga harus mencantumkannya di
|
javacopts
|
Opsi compiler ini diteruskan ke javac setelah opsi compiler global. |
neverlink
|
tools.jar untuk apa pun
yang berjalan di JDK standar.
Perhatikan bahwa Jika library runtime berbeda dengan library kompilasi, Anda harus memastikan bahwa library tersebut hanya berbeda di tempat yang dilarang oleh compiler JLS untuk inline (dan yang harus disimpan untuk semua versi JLS mendatang). |
plugins
|
java_plugin yang ditentukan dalam atribut ini akan dijalankan setiap kali aturan ini
dibuat. Library juga dapat mewarisi plugin dari dependensi yang menggunakan
exported_plugins . Resource yang dihasilkan oleh plugin akan disertakan dalam jar aturan yang dihasilkan.
|
proguard_specs
|
android_binary mana pun, bergantung pada library ini.
File yang disertakan di sini hanya boleh memiliki aturan idempoten, yaitu -dontnote, -dontwarn,
asumsinosideef, dan aturan yang diawali dengan -keep. Opsi lainnya hanya dapat muncul dalam proguard_spec android_binary , untuk memastikan penggabungan non-tekologis.
|
resource_jars
|
|
resource_strip_prefix
|
Jika ditentukan, awalan jalur ini akan dihapus dari setiap file dalam atribut |
runtime_deps
|
deps biasa, ini akan muncul di classpath runtime, tetapi tidak seperti
itu, bukan di classpath waktu kompilasi. Dependensi yang hanya diperlukan saat runtime harus dicantumkan di sini. Alat analisis dependensi harus mengabaikan target yang muncul di
runtime_deps dan deps .
|
java_lite_proto_library
Lihat sumber aturanjava_lite_proto_library(name, deps, data, compatible_with, deprecation, distribs, exec_compatible_with, exec_properties, features, licenses, restricted_to, tags, target_compatible_with, testonly, visibility)
java_lite_proto_library
menghasilkan kode Java dari .proto
file.
deps
harus mengarah ke aturan proto_library
.
Contoh:
java_library( name = "lib", deps = [":foo"], ) java_lite_proto_library( name = "foo", deps = [":bar"], ) proto_library( name = "bar", )
Argumen
Atribut | |
---|---|
name |
Nama unik untuk target ini. |
deps
|
proto_library
untuk menghasilkan kode Java.
|
library_java_proto
Lihat sumber aturanjava_proto_library(name, deps, data, compatible_with, deprecation, distribs, exec_compatible_with, exec_properties, features, licenses, restricted_to, tags, target_compatible_with, testonly, visibility)
java_proto_library
menghasilkan kode Java dari .proto
file.
deps
harus mengarah ke aturan proto_library
.
Contoh:
java_library( name = "lib", deps = [":foo_java_proto"], ) java_proto_library( name = "foo_java_proto", deps = [":foo_proto"], ) proto_library( name = "foo_proto", )
Argumen
Atribut | |
---|---|
name |
Nama unik untuk target ini. |
deps
|
proto_library
untuk menghasilkan kode Java.
|
pengujian_java
Lihat sumber aturanjava_test(name, deps, srcs, data, resources, args, classpath_resources, compatible_with, create_executable, deploy_manifest_lines, deprecation, distribs, env, env_inherit, exec_compatible_with, exec_properties, features, flaky, javacopts, jvm_flags, launcher, licenses, local, main_class, plugins, resource_jars, resource_strip_prefix, restricted_to, runtime_deps, shard_count, size, stamp, tags, target_compatible_with, test_class, testonly, timeout, toolchains, use_launcher, use_testrunner, visibility)
Aturan java_test()
mengompilasi pengujian Java. Pengujian adalah wrapper biner di sekitar kode pengujian Anda. Metode utama runner pengujian akan dipanggil, bukan class utama yang akan dikompilasi.
Target output implisit
name.jar
: Arsip Java.name_deploy.jar
: Arsip Java yang cocok untuk deployment. (Hanya dibuat jika diminta secara eksplisit.) Lihat deskripsi outputname_deploy.jar
dari java_binary untuk detail selengkapnya.
Lihat bagian argumen java_binary(). Aturan ini juga mendukung semua atribut yang sama untuk semua aturan pengujian (*_test).
Contoh
java_library( name = "tests", srcs = glob(["*.java"]), deps = [ "//java/com/foo/base:testResources", "//java/com/foo/testing/util", ], ) java_test( name = "AllTests", size = "small", runtime_deps = [ ":tests", "//util/mysql", ], )
Argumen
Atribut | |
---|---|
name |
Nama unik untuk target ini. |
deps
|
deps di Atribut umum yang ditentukan oleh sebagian besar aturan build.
|
srcs
|
File sumber jenis
File sumber jenis
Aturan: jika aturan (biasanya
Argumen ini hampir selalu diperlukan, kecuali jika
atribut |
resources
|
Jika ditentukan, resource tersebut akan dipaketkan dalam jar bersama dengan file Resource dapat berupa file sumber atau file yang dihasilkan. |
classpath_resources
|
Daftar resource yang harus ditempatkan di root hierarki java. Satu-satunya tujuan
atribut ini adalah untuk mendukung library pihak ketiga yang mengharuskan resource mereka
ditemukan di classpath sebagai tepat |
create_executable
|
launcher atau main_class
ditetapkan.
|
deploy_manifest_lines
|
META-INF/manifest.mf yang dibuat untuk
target *_deploy.jar . Konten atribut ini tidak tunduk pada substitusi "Make variabel".
|
javacopts
|
Opsi compiler ini diteruskan ke javac setelah opsi compiler global. |
jvm_flags
|
Skrip wrapper untuk biner Java menyertakan definisi CLASSPATH (untuk menemukan semua jar dependen) dan memanggil penafsir Java yang tepat.
Command line yang dihasilkan oleh skrip wrapper menyertakan nama class utama yang diikuti dengan Perlu diketahui bahwa atribut ini tidak berpengaruh pada output
|
launcher
|
bin/java normal yang disertakan dengan JDK.
Targetnya harus berupa cc_binary . Setiap cc_binary yang
menerapkan
Java Invocation API dapat ditentukan sebagai nilai untuk atribut ini.
Secara default, Bazel akan menggunakan peluncur JDK normal (bin/java atau java.exe). Flag Bazel Perhatikan bahwa dependensi native (C++, SWIG, JNI) akan dibuat secara berbeda, bergantung pada apakah Anda menggunakan peluncur JDK atau peluncur lainnya:
Jika menggunakan peluncur selain JDK default, format
output |
main_class
|
main() untuk digunakan sebagai titik entri.
Jika aturan menggunakan opsi ini, daftar srcs=[...] tidak diperlukan.
Dengan demikian, dengan atribut ini, Anda dapat membuat file yang dapat dieksekusi dari library Java yang sudah
berisi satu atau beberapa metode main() .
Nilai atribut ini adalah nama class, bukan file sumber. Class harus
tersedia pada saat runtime: class dapat dikompilasi oleh aturan ini (dari |
plugins
|
java_plugin yang ditentukan dalam atribut ini akan dijalankan setiap kali aturan ini
dibuat. Library juga dapat mewarisi plugin dari dependensi yang menggunakan
exported_plugins . Resource yang dihasilkan oleh plugin akan disertakan dalam jar aturan yang dihasilkan.
|
resource_jars
|
|
resource_strip_prefix
|
Jika ditentukan, awalan jalur ini akan dihapus dari setiap file dalam atribut |
runtime_deps
|
deps biasa, ini akan muncul di classpath runtime, tetapi tidak seperti
itu, bukan di classpath waktu kompilasi. Dependensi yang hanya diperlukan saat runtime harus dicantumkan di sini. Alat analisis dependensi harus mengabaikan target yang muncul di
runtime_deps dan deps .
|
stamp
|
Biner yang distempel tidak dibuat ulang kecuali jika dependensinya berubah. |
test_class
|
Secara default, jika argumen ini tidak ditentukan, maka mode lama akan digunakan dan
argumen pengujian akan digunakan. Tetapkan flag
Atribut ini menentukan nama class Java yang akan dijalankan oleh pengujian ini. Hal ini jarang terjadi. Jika dihilangkan, argumen ini akan disimpulkan menggunakan
Untuk JUnit3, class pengujian harus berupa subclass
Atribut ini memungkinkan beberapa aturan |
use_launcher
|
Jika atribut ini ditetapkan ke false, atribut
peluncur dan flag
|
use_testrunner
|
com.google.testing.junit.runner.BazelTestRunner ) sebagai
titik entri utama untuk program Java, dan berikan class pengujian
kepada runner pengujian sebagai nilai properti sistem
bazel.test_suite .
Anda dapat menggunakan ini untuk mengganti perilaku
default, yaitu menggunakan runner pengujian untuk
aturan java_test ,
dan tidak menggunakannya untuk aturan java_binary . kecil kemungkinan Anda
ingin melakukannya. Salah satu penggunaannya adalah untuk aturan
AllTest yang dipanggil oleh aturan lain (misalnya, untuk menyiapkan database sebelum menjalankan pengujian). Aturan AllTest
harus dideklarasikan sebagai java_binary , tetapi tetap
harus menggunakan runner pengujian sebagai titik entri utamanya.
Nama class test runner dapat diganti dengan atribut main_class .
|
konfigurasi_java_paket
Lihat sumber aturanjava_package_configuration(name, data, compatible_with, deprecation, distribs, features, javacopts, licenses, packages, restricted_to, tags, target_compatible_with, testonly, visibility)
Konfigurasi yang akan diterapkan ke kumpulan paket.
Konfigurasi dapat ditambahkan ke
java_toolchain.javacopts
.
Contoh:
java_package_configuration( name = "my_configuration", packages = [":my_packages"], javacopts = ["-Werror"], ) package_group( name = "my_packages", packages = [ "//com/my/project/...", "-//com/my/project/testing/...", ], ) java_toolchain( ..., package_configuration = [ ":my_configuration", ] )
Argumen
Atribut | |
---|---|
name |
Nama unik untuk target ini. |
data
|
|
javacopts
|
|
packages
|
package_group
yang harus diterapkan konfigurasi tersebut.
|
plugin_java
Lihat sumber aturanjava_plugin(name, deps, srcs, data, resources, compatible_with, deprecation, distribs, exec_compatible_with, exec_properties, features, generates_api, javacopts, licenses, neverlink, output_licenses, plugins, processor_class, proguard_specs, resource_jars, resource_strip_prefix, restricted_to, tags, target_compatible_with, testonly, visibility)
java_plugin
menentukan plugin untuk compiler Java yang dijalankan oleh Bazel. Saat ini, satu-satunya jenis plugin yang didukung adalah pemroses anotasi. Aturan java_library
atau
java_binary
dapat menjalankan plugin dengan bergantung padanya melalui atribut
plugins
. java_library
juga dapat otomatis mengekspor plugin ke library yang
bergantung langsung padanya menggunakan
exported_plugins
.
Target output implisit
libname.jar
: Arsip Java.
Argumen identik dengan java_library
, kecuali
untuk penambahan argumen processor_class
.
Argumen
Atribut | |
---|---|
name |
Nama unik untuk target ini. |
deps
|
deps di Atribut umum yang ditentukan oleh sebagian besar aturan build.
Jar yang dibuat oleh aturan
Sebaliknya, target dalam atribut |
srcs
|
File sumber jenis
File sumber jenis
Aturan: jika aturan (biasanya
Argumen ini hampir selalu diperlukan, kecuali jika
atribut |
data
|
data di Atribut umum yang ditentukan oleh sebagian besar aturan build.
Saat mem-build |
resources
|
Jika ditentukan, resource tersebut akan dipaketkan dalam jar bersama dengan file Resource dapat berupa file sumber atau file yang dihasilkan. |
generates_api
|
Jika aturan menggunakan pemroses anotasi yang menghasilkan API, aturan lain yang bergantung padanya dapat merujuk pada kode yang dihasilkan hanya jika tindakan kompilasinya dijadwalkan setelah aturan yang menghasilkan. Atribut ini menginstruksikan Bazel untuk memperkenalkan batasan penjadwalan saat --java_header_compilation diaktifkan. PERINGATAN: Atribut ini memengaruhi performa build, gunakan hanya jika diperlukan. |
javacopts
|
Opsi compiler ini diteruskan ke javac setelah opsi compiler global. |
neverlink
|
tools.jar untuk apa pun
yang berjalan di JDK standar.
Perhatikan bahwa Jika library runtime berbeda dengan library kompilasi, Anda harus memastikan bahwa library tersebut hanya berbeda di tempat yang dilarang oleh compiler JLS untuk inline (dan yang harus disimpan untuk semua versi JLS mendatang). |
output_licenses
|
common attributes
|
plugins
|
java_plugin yang ditentukan dalam atribut ini akan dijalankan setiap kali aturan ini
dibuat. Library juga dapat mewarisi plugin dari dependensi yang menggunakan
exported_plugins . Resource yang dihasilkan oleh plugin akan disertakan dalam jar aturan yang dihasilkan.
|
processor_class
|
|
proguard_specs
|
android_binary mana pun, bergantung pada library ini.
File yang disertakan di sini hanya boleh memiliki aturan idempoten, yaitu -dontnote, -dontwarn,
asumsinosideef, dan aturan yang diawali dengan -keep. Opsi lainnya hanya dapat muncul dalam proguard_spec android_binary , untuk memastikan penggabungan non-tekologis.
|
resource_jars
|
|
resource_strip_prefix
|
Jika ditentukan, awalan jalur ini akan dihapus dari setiap file dalam atribut |
runtime_java
Lihat sumber aturanjava_runtime(name, srcs, compatible_with, default_cds, deprecation, distribs, features, hermetic_srcs, java, java_home, lib_modules, licenses, restricted_to, tags, target_compatible_with, testonly, version, visibility)
Menentukan konfigurasi untuk runtime Java.
Contoh:
java_runtime( name = "jdk-9-ea+153", srcs = glob(["jdk9-ea+153/**"]), java_home = "jdk9-ea+153", )
Argumen
Atribut | |
---|---|
name |
Nama unik untuk target ini. |
srcs
|
|
default_cds
|
java_runtime kedap udara. Jika hermetik
diaktifkan untuk target java_binary dan jika target tidak
menyediakan arsip CDS-nya sendiri dengan menentukan
atribut classlist ,
CDS default java_runtime akan dikemas dalam JAR deployment hermetic.
|
hermetic_srcs
|
|
java
|
|
java_home
|
srcs dan java harus kosong.
|
lib_modules
|
|
version
|
Runtime.version().feature() .
|
java_chain
Lihat sumber aturanjava_toolchain(name, android_lint_data, android_lint_jvm_opts, android_lint_opts, android_lint_package_configuration, android_lint_runner, bootclasspath, compatible_with, deprecation, deps_checker, distribs, features, forcibly_disable_header_compilation, genclass, header_compiler, header_compiler_direct, ijar, jacocorunner, java_runtime, javabuilder, javabuilder_data, javabuilder_jvm_opts, javac_supports_multiplex_workers, javac_supports_workers, javacopts, jvm_opts, licenses, oneversion, oneversion_whitelist, package_configuration, proguard_allowlister, resourcejar, restricted_to, singlejar, source_version, tags, target_compatible_with, target_version, testonly, timezone_data, tools, turbine_data, turbine_jvm_opts, visibility, xlint)
Menentukan konfigurasi untuk compiler Java. Toolchain yang akan digunakan dapat diubah melalui argumen --java_Toolchain. Biasanya, Anda tidak boleh menulis aturan semacam itu kecuali Anda ingin menyesuaikan compiler Java.
Contoh
Contohnya adalah:
java_toolchain( name = "toolchain", source_version = "7", target_version = "7", bootclasspath = ["//tools/jdk:bootclasspath"], xlint = [ "classfile", "divzero", "empty", "options", "path" ], javacopts = [ "-g" ], javabuilder = ":JavaBuilder_deploy.jar", )
Argumen
Atribut | |
---|---|
name |
Nama unik untuk target ini. |
android_lint_data
|
|
android_lint_jvm_opts
|
|
android_lint_opts
|
|
android_lint_package_configuration
|
|
android_lint_runner
|
|
bootclasspath
|
|
deps_checker
|
|
forcibly_disable_header_compilation
|
|
genclass
|
|
header_compiler
|
|
header_compiler_direct
|
Alat ini tidak mendukung pemrosesan anotasi. |
ijar
|
|
jacocorunner
|
|
java_runtime
|
|
javabuilder
|
|
javabuilder_data
|
|
javabuilder_jvm_opts
|
|
javac_supports_multiplex_workers
|
|
javac_supports_workers
|
|
javacopts
|
|
jvm_opts
|
|
oneversion
|
|
oneversion_whitelist
|
|
package_configuration
|
|
proguard_allowlister
|
|
resourcejar
|
|
singlejar
|
|
source_version
|
|
target_version
|
|
timezone_data
|
|
tools
|
|
turbine_data
|
|
turbine_jvm_opts
|
|
xlint
|
|