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_binary
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)
Membangun arsip Java ("file jar"), ditambah skrip shell wrapper dengan nama yang sama dengan aturan.
Skrip shell wrapper menggunakan classpath yang menyertakan, antara lain, file jar untuk setiap library yang menjadi tempat biner bergantung. Saat menjalankan skrip shell wrapper, semua variabel lingkungan JAVABIN
yang tidak kosong akan lebih diutamakan daripada versi yang ditentukan melalui flag --java_runtime_version
Bazel.
Skrip wrapper menerima beberapa tanda 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 lain yang sesuai dengan dependensi langsung biner.name-src.jar
: Arsip yang berisi sumber ("jar 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 menghasilkan file jar yang berdiri sendiri dengan manifes yang memungkinkannya dijalankan dengan perintahjava -jar
atau dengan opsi--singlejar
skrip wrapper. Penggunaan skrip wrapper lebih disukai daripadajava -jar
karena juga akan meneruskan flag JVM dan opsi untuk memuat library native.Deploy jar berisi semua class yang akan ditemukan oleh classloader yang menelusuri classpath dari skrip wrapper biner dari awal hingga akhir. Library ini juga berisi library native yang diperlukan untuk dependensi. Link tersebut otomatis dimuat ke dalam JVM saat runtime.
Jika target Anda menentukan atribut peluncur, maka alih-alih menjadi file JAR normal, _deploy.jar akan menjadi biner native. File ini akan berisi peluncur serta dependensi native (C++) apa pun dari aturan Anda, semuanya ditautkan ke dalam biner statis. Byte file jar yang sebenarnya akan ditambahkan ke biner native tersebut, sehingga menghasilkan satu blob biner yang berisi file yang dapat dieksekusi dan kode Java. Anda dapat menjalankan file jar yang dihasilkan secara langsung seperti Anda menjalankan biner native apa pun.
name_deploy-src.jar
: Arsip yang berisi sumber yang dikumpulkan dari penutupan transitif target. Ini akan cocok dengan class dalamdeploy.jar
, kecuali jika jar tidak memiliki jar sumber yang cocok.
Atribut deps
tidak diizinkan dalam aturan java_binary
tanpa
srcs
; aturan seperti itu 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 )
Lakukan hal berikut:
java_binary( name = "DoThisInstead", srcs = [ ..., ":generating_rule", ], )
Argumen
Atribut | |
---|---|
name |
Nama; wajib diisi 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 , nama Anda bisa menjadi Main .
|
deps
|
Daftar label; defaultnya adalah deps di
Atribut umum yang ditentukan oleh
sebagian besar aturan build.
|
srcs
|
Daftar label; defaultnya adalah
File sumber jenis
File sumber jenis
Aturan: jika aturan (biasanya
Argumen ini hampir selalu diperlukan, kecuali jika atribut
|
resources
|
Daftar label; defaultnya adalah
Jika ditentukan, resource akan digabungkan dalam jar bersama file Resource dapat berupa file sumber atau file yang dihasilkan. |
classpath_resources
|
Daftar label; defaultnya adalah
Daftar resource yang harus ditempatkan di root hierarki java. Satu-satunya tujuan atribut ini
adalah mendukung library pihak ketiga yang mengharuskan resource-nya ditemukan
di classpath persis seperti |
create_executable
|
Boolean; tidak dapat dikonfigurasi; defaultnya adalah java_single_jar sebagai gantinya.
|
deploy_env
|
Daftar label; defaultnya adalah java_binary lainnya yang mewakili lingkungan deployment untuk biner ini.
Tetapkan atribut ini saat mem-build plugin yang akan dimuat oleh java_binary lain.Menetapkan atribut ini akan mengecualikan semua dependensi dari classpath runtime (dan jar deploy) biner ini yang digunakan bersama oleh biner ini dan target yang ditentukan dalam deploy_env .
|
deploy_manifest_lines
|
Daftar string; defaultnya adalah META-INF/manifest.mf yang dibuat untuk
target *_deploy.jar . Konten atribut ini tidak tunduk
pada substitusi "Buat variabel".
|
javacopts
|
Daftar string; defaultnya adalah Opsi compiler ini diteruskan ke javac setelah opsi compiler global. |
jvm_flags
|
Daftar string; defaultnya adalah 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 Perhatikan bahwa atribut ini tidak berpengaruh pada output |
launcher
|
Label; defaultnya adalah bin/java normal yang disertakan dengan JDK.
Target harus berupa cc_binary . Setiap cc_binary yang menerapkan
Java Invocation API dapat ditetapkan 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:
Saat menggunakan peluncur selain peluncur JDK default, format
output |
main_class
|
String; defaultnya adalah main() untuk digunakan sebagai titik entri.
Jika menggunakan opsi ini, aturan tidak memerlukan daftar srcs=[...] .
Oleh karena itu, dengan atribut ini, kita 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 saat runtime: dapat dikompilasi oleh aturan ini (dari |
plugins
|
Daftar label; defaultnya adalah 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 yang dihasilkan aturan ini.
|
resource_jars
|
Daftar label; defaultnya adalah |
resource_strip_prefix
|
String; defaultnya adalah
Jika ditentukan, awalan jalur ini akan dihapus dari setiap file dalam atribut
|
runtime_deps
|
Daftar label; defaultnya adalah deps biasa, class ini akan muncul di classpath runtime, tetapi berbeda dengan
miliknya, class ini tidak muncul di classpath waktu kompilasi. Dependensi yang hanya diperlukan saat runtime harus tercantum di sini. Alat analisis dependensi akan mengabaikan target yang muncul dalam
runtime_deps dan deps .
|
stamp
|
Bilangan bulat; defaultnya adalah
Biner yang distempel tidak dibangun ulang kecuali jika dependensinya berubah. |
use_launcher
|
Boolean; defaultnya adalah Jika atribut ini ditetapkan ke false, atribut
peluncur dan flag
|
use_testrunner
|
Boolean; defaultnya adalah 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 menggunakannya untuk mengganti perilaku
default, yaitu menggunakan runner pengujian untuk
aturan java_test ,
dan tidak menggunakannya untuk aturan java_binary . Anda mungkin tidak ingin melakukan hal ini. Salah satu kegunaannya 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 masuk utamanya.
Nama class runner pengujian 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; wajib diisi Nama unik untuk target ini. |
deps
|
Daftar label; defaultnya adalah |
constraints
|
Daftar string; nonconfigurable; defaultnya adalah |
exports
|
Daftar label; defaultnya adalah |
jars
|
Daftar label; wajib diisi Daftar file JAR yang disediakan ke target Java yang bergantung pada target ini. |
neverlink
|
Boolean; defaultnya adalah tools.jar untuk apa pun yang berjalan di JDK standar.
|
proguard_specs
|
Daftar label; defaultnya adalah android_binary bergantung pada library ini.
File yang disertakan di sini hanya boleh memiliki aturan idempoten, yaitu -dontnote, -dontwarning,
asumsinoside Effects, dan aturan yang diawali dengan -keep. Opsi lainnya hanya dapat muncul di
proguard_specs android_binary , untuk memastikan penggabungan non-tautoologis.
|
runtime_deps
|
Daftar label; defaultnya adalah |
srcjar
|
Label; defaultnya adalah |
java_library
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 ("jar sumber").
Argumen
Atribut | |
---|---|
name |
Nama; wajib diisi Nama unik untuk target ini. |
deps
|
Daftar label; defaultnya adalah deps di
Atribut umum yang ditentukan oleh
sebagian besar aturan build.
Jar yang dibangun oleh aturan
Sebaliknya, target dalam atribut |
srcs
|
Daftar label; defaultnya adalah
File sumber jenis
File sumber jenis
Aturan: jika aturan (biasanya
Argumen ini hampir selalu diperlukan, kecuali jika atribut
|
data
|
Daftar label; defaultnya adalah data di
Atribut umum yang ditentukan oleh
sebagian besar aturan build.
Saat membuat |
resources
|
Daftar label; defaultnya adalah
Jika ditentukan, resource akan digabungkan dalam jar bersama file Resource dapat berupa file sumber atau file yang dihasilkan. |
exported_plugins
|
Daftar label; defaultnya adalah java_plugin (misalnya pemroses anotasi) yang akan diekspor ke library yang bergantung langsung pada library ini.
Daftar |
exports
|
Daftar label; defaultnya adalah
Mencantumkan aturan di sini akan membuatnya tersedia untuk aturan induk, seolah-olah induk tersebut bergantung secara eksplisit pada aturan ini. Hal ini tidak berlaku untuk
Ringkasan: aturan X dapat mengakses kode di Y jika terdapat 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, sehingga mengubah sumber C dan mem-build ulang A akan
membangun ulang semuanya dengan benar. Namun, A tidak akan dapat menggunakan class di C. Untuk memungkinkan
hal tersebut, 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 masing-masing library, C' dan D', A hanya dapat mengakses C', tetapi tidak D'.
Penting: aturan yang diekspor bukan merupakan dependensi reguler. Tetap berpegang pada contoh sebelumnya, jika B mengekspor C dan juga ingin menggunakan C, kode tersebut juga harus mencantumkannya dalam |
javacopts
|
Daftar string; defaultnya adalah Opsi compiler ini diteruskan ke javac setelah opsi compiler global. |
neverlink
|
Boolean; defaultnya adalah tools.jar untuk apa pun
yang berjalan pada JDK standar.
Perlu diperhatikan bahwa Jika library runtime berbeda dengan library kompilasi, Anda harus memastikan bahwa library tersebut hanya berbeda di tempat yang JLS melarang compiler untuk inline (dan yang harus disimpan untuk semua versi JLS mendatang). |
plugins
|
Daftar label; defaultnya adalah 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 yang dihasilkan aturan ini.
|
proguard_specs
|
Daftar label; defaultnya adalah android_binary bergantung pada library ini.
File yang disertakan di sini hanya boleh memiliki aturan idempoten, yaitu -dontnote, -dontwarning,
asumsinoside Effects, dan aturan yang diawali dengan -keep. Opsi lainnya hanya dapat muncul di
proguard_specs android_binary , untuk memastikan penggabungan non-tautoologis.
|
resource_jars
|
Daftar label; defaultnya adalah |
resource_strip_prefix
|
String; defaultnya adalah
Jika ditentukan, awalan jalur ini akan dihapus dari setiap file dalam atribut
|
runtime_deps
|
Daftar label; defaultnya adalah deps biasa, class ini akan muncul di classpath runtime, tetapi berbeda dengan
miliknya, class ini tidak muncul di classpath waktu kompilasi. Dependensi yang hanya diperlukan saat runtime harus tercantum di sini. Alat analisis dependensi akan mengabaikan target yang muncul dalam
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
membuat kode Java dari file .proto
.
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; wajib diisi Nama unik untuk target ini. |
deps
|
Daftar label; defaultnya adalah proto_library
untuk membuat kode Java.
|
java_proto_library
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
membuat kode Java dari file .proto
.
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; wajib diisi Nama unik untuk target ini. |
deps
|
Daftar label; defaultnya adalah proto_library
untuk membuat kode Java.
|
java_test
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 dipanggil, bukan class utama yang 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 tentang argumen java_binary(). Aturan ini juga mendukung semua atribut yang umum 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; wajib diisi Nama unik untuk target ini. |
deps
|
Daftar label; defaultnya adalah deps di
Atribut umum yang ditentukan oleh
sebagian besar aturan build.
|
srcs
|
Daftar label; defaultnya adalah
File sumber jenis
File sumber jenis
Aturan: jika aturan (biasanya
Argumen ini hampir selalu diperlukan, kecuali jika atribut
|
resources
|
Daftar label; defaultnya adalah
Jika ditentukan, resource akan digabungkan dalam jar bersama file Resource dapat berupa file sumber atau file yang dihasilkan. |
classpath_resources
|
Daftar label; defaultnya adalah
Daftar resource yang harus ditempatkan di root hierarki java. Satu-satunya tujuan atribut ini
adalah mendukung library pihak ketiga yang mengharuskan resource-nya ditemukan
di classpath persis seperti |
create_executable
|
Boolean; tidak dapat dikonfigurasi; defaultnya adalah java_single_jar sebagai gantinya.
|
deploy_manifest_lines
|
Daftar string; defaultnya adalah META-INF/manifest.mf yang dibuat untuk
target *_deploy.jar . Konten atribut ini tidak tunduk
pada substitusi "Buat variabel".
|
javacopts
|
Daftar string; defaultnya adalah Opsi compiler ini diteruskan ke javac setelah opsi compiler global. |
jvm_flags
|
Daftar string; defaultnya adalah 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 Perhatikan bahwa atribut ini tidak berpengaruh pada output |
launcher
|
Label; defaultnya adalah bin/java normal yang disertakan dengan JDK.
Target harus berupa cc_binary . Setiap cc_binary yang menerapkan
Java Invocation API dapat ditetapkan 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:
Saat menggunakan peluncur selain peluncur JDK default, format
output |
main_class
|
String; defaultnya adalah main() untuk digunakan sebagai titik entri.
Jika menggunakan opsi ini, aturan tidak memerlukan daftar srcs=[...] .
Oleh karena itu, dengan atribut ini, kita 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 saat runtime: dapat dikompilasi oleh aturan ini (dari |
plugins
|
Daftar label; defaultnya adalah 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 yang dihasilkan aturan ini.
|
resource_jars
|
Daftar label; defaultnya adalah |
resource_strip_prefix
|
String; defaultnya adalah
Jika ditentukan, awalan jalur ini akan dihapus dari setiap file dalam atribut
|
runtime_deps
|
Daftar label; defaultnya adalah deps biasa, class ini akan muncul di classpath runtime, tetapi berbeda dengan
miliknya, class ini tidak muncul di classpath waktu kompilasi. Dependensi yang hanya diperlukan saat runtime harus tercantum di sini. Alat analisis dependensi akan mengabaikan target yang muncul dalam
runtime_deps dan deps .
|
stamp
|
Bilangan bulat; defaultnya adalah
Biner yang distempel tidak dibangun ulang kecuali jika dependensinya berubah. |
test_class
|
String; defaultnya adalah
Secara default, jika argumen ini tidak ditentukan, mode lama akan digunakan dan
argumen pengujian akan digunakan sebagai gantinya. Tetapkan tanda
Atribut ini menetapkan 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
|
Boolean; defaultnya adalah Jika atribut ini ditetapkan ke false, atribut
peluncur dan flag
|
use_testrunner
|
Boolean; defaultnya adalah 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 menggunakannya untuk mengganti perilaku
default, yaitu menggunakan runner pengujian untuk
aturan java_test ,
dan tidak menggunakannya untuk aturan java_binary . Anda mungkin tidak ingin melakukan hal ini. Salah satu kegunaannya 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 masuk utamanya.
Nama class runner pengujian dapat diganti dengan atribut main_class .
|
java_package_configuration
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 sekumpulan 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; wajib diisi Nama unik untuk target ini. |
data
|
Daftar label; defaultnya adalah |
javacopts
|
Daftar string; defaultnya adalah |
packages
|
Daftar label; defaultnya adalah package_group tempat konfigurasi akan diterapkan.
|
java_plugin
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 pada plugin tersebut 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; wajib diisi Nama unik untuk target ini. |
deps
|
Daftar label; defaultnya adalah deps di
Atribut umum yang ditentukan oleh
sebagian besar aturan build.
Jar yang dibangun oleh aturan
Sebaliknya, target dalam atribut |
srcs
|
Daftar label; defaultnya adalah
File sumber jenis
File sumber jenis
Aturan: jika aturan (biasanya
Argumen ini hampir selalu diperlukan, kecuali jika atribut
|
data
|
Daftar label; defaultnya adalah data di
Atribut umum yang ditentukan oleh
sebagian besar aturan build.
Saat membuat |
resources
|
Daftar label; defaultnya adalah
Jika ditentukan, resource akan digabungkan dalam jar bersama file Resource dapat berupa file sumber atau file yang dihasilkan. |
generates_api
|
Boolean; defaultnya adalah Jika sebuah aturan menggunakan pemroses anotasi yang menghasilkan API, aturan lain yang bergantung padanya dapat merujuk ke kode yang dihasilkan hanya jika tindakan kompilasinya dijadwalkan setelah aturan pembuatan. Atribut ini menginstruksikan Bazel untuk memasukkan batasan penjadwalan saat --java_header_compilation diaktifkan. PERINGATAN: Atribut ini memengaruhi performa build. Gunakan hanya jika diperlukan. |
javacopts
|
Daftar string; defaultnya adalah Opsi compiler ini diteruskan ke javac setelah opsi compiler global. |
neverlink
|
Boolean; defaultnya adalah tools.jar untuk apa pun
yang berjalan pada JDK standar.
Perlu diperhatikan bahwa Jika library runtime berbeda dengan library kompilasi, Anda harus memastikan bahwa library tersebut hanya berbeda di tempat yang JLS melarang compiler untuk inline (dan yang harus disimpan untuk semua versi JLS mendatang). |
output_licenses
|
Jenis lisensi; defaultnya adalah common attributes
|
plugins
|
Daftar label; defaultnya adalah 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 yang dihasilkan aturan ini.
|
processor_class
|
String; defaultnya adalah |
proguard_specs
|
Daftar label; defaultnya adalah android_binary bergantung pada library ini.
File yang disertakan di sini hanya boleh memiliki aturan idempoten, yaitu -dontnote, -dontwarning,
asumsinoside Effects, dan aturan yang diawali dengan -keep. Opsi lainnya hanya dapat muncul di
proguard_specs android_binary , untuk memastikan penggabungan non-tautoologis.
|
resource_jars
|
Daftar label; defaultnya adalah |
resource_strip_prefix
|
String; defaultnya adalah
Jika ditentukan, awalan jalur ini akan dihapus dari setiap file dalam atribut
|
java_runtime
Lihat sumber aturanjava_runtime(name, srcs, compatible_with, default_cds, deprecation, distribs, features, hermetic_srcs, java, java_home, lib_ct_sym, 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; wajib diisi Nama unik untuk target ini. |
srcs
|
Daftar label; defaultnya adalah |
default_cds
|
Label; defaultnya adalah java_runtime hermetic. Saat hermetic 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
|
Daftar label; defaultnya adalah |
java
|
Label; defaultnya adalah |
java_home
|
String; defaultnya adalah srcs dan java harus kosong.
|
lib_ct_sym
|
Label; defaultnya adalah --release . Jika tidak ditentukan dan
hanya ada satu file di srcs yang jalurnya diakhiri dengan
/lib/ct.sym , file tersebut akan digunakan.
|
lib_modules
|
Label; defaultnya adalah |
version
|
Bilangan bulat; defaultnya adalah Runtime.version().feature() .
|
java_toolchain
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_allowlist_for_tests, 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 mana yang akan digunakan dapat diubah melalui argumen --java_ toolchain. Biasanya Anda tidak boleh menulis aturan semacam itu kecuali jika Anda ingin menyesuaikan compiler Java.
Contoh
Contoh sederhananya 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; wajib diisi Nama unik untuk target ini. |
android_lint_data
|
Daftar label; defaultnya adalah |
android_lint_jvm_opts
|
Daftar string; defaultnya adalah |
android_lint_opts
|
Daftar string; defaultnya adalah |
android_lint_package_configuration
|
Daftar label; defaultnya adalah |
android_lint_runner
|
Label; defaultnya adalah |
bootclasspath
|
Daftar label; defaultnya adalah |
deps_checker
|
Daftar label; defaultnya adalah |
forcibly_disable_header_compilation
|
Boolean; defaultnya adalah |
genclass
|
Daftar label; wajib diisi Label jar deploy GenClass. |
header_compiler
|
Daftar label; defaultnya adalah |
header_compiler_direct
|
Daftar label; defaultnya adalah Alat ini tidak mendukung pemrosesan anotasi. |
ijar
|
Daftar label; wajib diisi Label dari file ijar yang dapat dieksekusi. |
jacocorunner
|
Label; defaultnya adalah |
java_runtime
|
Label; wajib diisi java_runtime yang akan digunakan dengan toolchain ini. Nilai defaultnya adalah java_runtime dalam konfigurasi eksekusi. |
javabuilder
|
Daftar label; wajib diisi Label jar deploy JavaBuilder. |
javabuilder_data
|
Daftar label; defaultnya adalah |
javabuilder_jvm_opts
|
Daftar string; defaultnya adalah |
javac_supports_multiplex_workers
|
Boolean; defaultnya adalah |
javac_supports_workers
|
Boolean; defaultnya adalah |
javacopts
|
Daftar string; defaultnya adalah |
jvm_opts
|
Daftar string; defaultnya adalah |
oneversion
|
Label; defaultnya adalah |
oneversion_allowlist_for_tests
|
Label; defaultnya adalah |
oneversion_whitelist
|
Label; defaultnya adalah |
package_configuration
|
Daftar label; defaultnya adalah |
proguard_allowlister
|
Label; defaultnya adalah |
resourcejar
|
Daftar label; defaultnya adalah |
singlejar
|
Daftar label; wajib diisi Label jar deploy SingleJar. |
source_version
|
String; defaultnya adalah |
target_version
|
String; defaultnya adalah |
timezone_data
|
Label; defaultnya adalah |
tools
|
Daftar label; defaultnya adalah |
turbine_data
|
Daftar label; defaultnya adalah |
turbine_jvm_opts
|
Daftar string; defaultnya adalah |
xlint
|
Daftar string; defaultnya adalah |