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, di antara hal lain, file jar untuk setiap
{i>library<i} di mana
biner bergantung. Saat menjalankan skrip shell wrapper, setiap elemen yang tidak kosong
Variabel lingkungan JAVABIN
akan lebih diprioritaskan daripada versi yang ditentukan melalui
Bendera --java_runtime_version
Bazel.
Skrip wrapper menerima beberapa tanda unik. Rujuk ke
//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 kelas dan resource yang sesuai dengan dependensi langsung biner.name-src.jar
: Arsip yang berisi sumber ("sumber stoples").name_deploy.jar
: Arsip Java yang cocok untuk deployment (hanya dibangun jika diminta secara eksplisit).Membuat target
<name>_deploy.jar
untuk aturan Anda membuat file jar mandiri dengan manifes yang memungkinkannya dijalankan dengan perintahjava -jar
atau dengan--singlejar
skrip wrapper sebelumnya. Menggunakan skrip wrapper lebih disukai daripadajava -jar
karena juga meneruskan flag JVM dan opsi untuk memuat library native.Jar deploy berisi semua class yang akan ditemukan oleh classloader yang mencari classpath dari skrip wrapper biner dari awal hingga akhir. Ini juga berisi library native yang dibutuhkan untuk dependensi. URL ini dimuat secara otomatis ke dalam JVM saat runtime.
Jika target Anda menentukan peluncur , alih-alih menjadi file JAR normal, _deploy.jar akan menjadi biner native. Ini akan berisi peluncur beserta dependensi native (C++) dari aturan Anda, semua ditautkan ke dalam biner statis. Byte file jar yang sebenarnya akan ditambahkan ke biner native tersebut, membuat satu blob biner yang berisi file yang dapat dieksekusi dan kode Java. Anda dapat langsung mengeksekusi file jar yang dihasilkan seperti Anda akan mengeksekusi biner native apa pun.
name_deploy-src.jar
: Arsip yang berisi sumber yang dikumpulkan dari penutupan transitif target. Ini 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
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 Main.java , maka nama Anda bisa menjadi Main .
|
deps
|
Daftar label; default adalah deps di
Atribut umum didefinisikan oleh
sebagian besar aturan build.
|
srcs
|
Daftar label; default adalah
File sumber jenis
File sumber jenis
Aturan: jika aturan (biasanya
Argumen ini hampir selalu diperlukan, kecuali jika
Atribut |
resources
|
Daftar label; default adalah
Jika sudah ditentukan, resource akan dikelompokkan dalam stoples bersama dengan
Resource dapat berupa file sumber atau file yang dihasilkan. |
classpath_resources
|
Daftar label; default adalah
Daftar resource yang harus ditempatkan di root hierarki java. Atribut ini
satu-satunya tujuannya adalah untuk mendukung pustaka pihak ketiga
yang mengharuskan sumber daya mereka
yang ditemukan di classpath tepatnya |
create_executable
|
Boolean; tidak dapat dikonfigurasi; default adalah java_single_jar sebagai gantinya.
|
deploy_env
|
Daftar label; default adalah java_binary lain yang mewakili deployment
untuk sistem biner ini.
Tetapkan atribut ini saat membangun plugin yang akan dimuat oleh plugin lain
java_binary .Menetapkan atribut ini akan mengecualikan semua dependensi dari classpath runtime (dan jar deploy) biner ini yang dibagikan di antara biner dan target yang ditentukan dalam deploy_env .
|
deploy_manifest_lines
|
Daftar {i>string<i}; default-nya adalah META-INF/manifest.mf yang dibuat untuk
Target *_deploy.jar . Konten atribut ini tidak subjek
ke "Buat variabel".
|
javacopts
|
Daftar {i>string<i}; default-nya adalah Opsi compiler ini diteruskan ke javac setelah opsi compiler global. |
jvm_flags
|
Daftar {i>string<i}; default-nya adalah Skrip wrapper untuk biner Java menyertakan definisi CLASSPATH
(untuk menemukan semua jar dependen) dan memanggil penafsir Java yang tepat.
Baris perintah yang dihasilkan oleh skrip wrapper menyertakan nama
class utama diikuti dengan Perhatikan bahwa atribut ini tidak berpengaruh pada |
launcher
|
Label; default adalah bin/java normal yang disertakan dengan JDK.
Target harus berupa cc_binary . Setiap cc_binary yang
mengimplementasikan
Java Invocation API dapat ditetapkan sebagai nilai untuk atribut ini.
Secara default, Bazel akan menggunakan peluncur JDK normal (bin/java atau java.exe). Tanda 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
perubahan output |
main_class
|
String; default-nya adalah main() untuk digunakan sebagai titik entri.
Jika menggunakan opsi ini, aturan tidak memerlukan daftar srcs=[...] .
Sehingga, dengan atribut ini kita bisa membuat {i>executable<i} dari pustaka Java yang sudah
berisi satu atau beberapa metode main() .
Nilai atribut ini adalah nama class, bukan file sumber. Kelas harus
tersedia saat runtime: kode dapat dikompilasi oleh aturan ini (dari |
plugins
|
Daftar label; default adalah java_plugin yang ditentukan dalam atribut ini akan dijalankan setiap kali aturan ini
dibangun. Library juga dapat mewarisi plugin dari dependensi yang menggunakan
exported_plugins . Sumber daya
yang dihasilkan oleh plugin akan disertakan dalam jar yang dihasilkan dari aturan ini.
|
resource_jars
|
Daftar label; default adalah |
resource_strip_prefix
|
String; default-nya adalah
Jika ditentukan, awalan jalur ini akan dihapus dari setiap file dalam |
runtime_deps
|
Daftar label; default adalah deps biasa, class ini akan muncul di classpath runtime, tetapi tidak seperti
mereka, bukan pada classpath waktu kompilasi. Dependensi yang hanya diperlukan
pada runtime harus
yang tercantum di sini. Alat analisis dependensi harus mengabaikan target yang muncul di kedua
runtime_deps dan deps .
|
stamp
|
{i>Integer<i} (Bilangan bulat): default-nya adalah
Biner yang distempel tidak dibangun ulang kecuali jika dependensinya berubah. |
use_launcher
|
Boolean; default-nya adalah Jika atribut ini ditetapkan ke false, atribut
launcher dan atribut terkait
Tanda |
use_testrunner
|
Boolean; default-nya adalah com.google.testing.junit.runner.BazelTestRunner ) sebagai class
titik entri utama untuk program Java, dan menyediakan class pengujian
ke runner pengujian sebagai nilai bazel.test_suite
properti sistem.
Anda dapat menggunakannya untuk mengganti
yaitu menggunakan {i>
test runner<i} untuk
java_test aturan,
dan tidak menggunakannya untuk aturan java_binary . Tidak mungkin
Anda pasti ingin melakukan ini. Satu penggunaan adalah untuk AllTest
aturan yang dipanggil oleh aturan lain (untuk menyiapkan database
sebelum menjalankan pengujian, misalnya). AllTest
aturan harus dideklarasikan sebagai java_binary , tetapi harus
masih menggunakan {i>test runner<i}
sebagai titik masuk utamanya.
Nama class runner pengujian dapat diganti dengan atribut main_class .
|
java_import
Lihat sumber aturanjava_import(name, deps, data, add_exports, add_opens, 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, toolchains, visibility)
Aturan ini mengizinkan penggunaan file .jar
yang telah dikompilasi sebelumnya sebagai
library untuk java_library
dan
java_binary
aturan.
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; default adalah |
data
|
Daftar label; default adalah |
add_exports
|
Daftar {i>string<i}; default-nya adalah module atau package yang diberikan.
Ini berkaitan dengan flag javac dan JVM --add-exports=. |
add_opens
|
Daftar {i>string<i}; default-nya adalah module yang diberikan atau secara reflektif
package .
Ini berkaitan dengan flag javac dan JVM --add-opens=. |
constraints
|
Daftar {i>string<i}; default-nya adalah |
exports
|
Daftar label; default adalah |
jars
|
Daftar label; wajib diisi Daftar file JAR yang disediakan ke target Java yang bergantung pada target ini. |
neverlink
|
Boolean; default-nya adalah tools.jar untuk apa pun yang berjalan di
JDK standar.
|
proguard_specs
|
Daftar label; default adalah android_binary bergantung pada library ini.
File yang disertakan di sini hanya boleh memiliki aturan idempoten, yaitu -dontnote, -dontwarning,
mengasumsikan bahwa efek samping tersebut, dan aturan
yang dimulai dengan {i>-keep<i}. Opsi lainnya hanya dapat muncul di
proguard_specs android_binary , untuk memastikan penggabungan non-tautoologis.
|
runtime_deps
|
Daftar label; default adalah |
srcjar
|
Label; default adalah |
java_library
Lihat sumber aturanjava_library(name, deps, srcs, data, resources, add_exports, add_opens, bootclasspath, compatible_with, deprecation, distribs, exec_compatible_with, exec_properties, exported_plugins, exports, features, javabuilder_jvm_flags, javacopts, licenses, neverlink, plugins, proguard_specs, resource_strip_prefix, restricted_to, runtime_deps, tags, target_compatible_with, testonly, toolchains, visibility)
Aturan ini mengompilasi dan menautkan sumber ke dalam file .jar
.
Output implisit
libname.jar
: Arsip Java yang berisi file class.libname-src.jar
: Arsip yang berisi sumber ("sumber stoples").
Argumen
Atribut | |
---|---|
name |
Nama; wajib diisi Nama unik untuk target ini. |
deps
|
Daftar label; default adalah deps di
Atribut umum didefinisikan oleh
sebagian besar aturan build.
Stoples yang dibuat oleh aturan
Sebaliknya, target dalam atribut |
srcs
|
Daftar label; default adalah
File sumber jenis
File sumber jenis
Aturan: jika aturan (biasanya
File sumber jenis Semua file lainnya akan diabaikan, selama ada setidaknya satu file jenis file yang dijelaskan di atas. Jika tidak, error akan muncul.
Argumen ini hampir selalu diperlukan, kecuali jika Anda menentukan argumen |
data
|
Daftar label; default adalah data di
Atribut umum didefinisikan oleh
sebagian besar aturan build.
Saat membuat |
resources
|
Daftar label; default adalah Resource dapat berupa file sumber atau file yang dihasilkan.
Jika sudah ditentukan, resource akan dikelompokkan dalam stoples bersama dengan
|
add_exports
|
Daftar {i>string<i}; default-nya adalah module atau package yang diberikan.
Ini berkaitan dengan flag javac dan JVM --add-exports=. |
add_opens
|
Daftar {i>string<i}; default-nya adalah module yang diberikan atau secara reflektif
package .
Ini berkaitan dengan flag javac dan JVM --add-opens=. |
bootclasspath
|
Label; default adalah |
exported_plugins
|
Daftar label; default adalah java_plugin (mis. anotasi
pemroses) untuk mengekspor ke library yang bergantung langsung pada library ini.
Daftar |
exports
|
Daftar label; default adalah
Mencantumkan aturan di sini akan membuatnya tersedia untuk aturan induk, seolah-olah induk
bergantung pada aturan-aturan tersebut. Hal ini tidak berlaku untuk
Ringkasan: aturan X dapat mengakses kode di Y jika ada dependensi
jalur di antara keduanya yang dimulai dengan tepi
Asumsikan A bergantung pada B dan B bergantung pada C. Dalam hal ini,
C adalah dependensi transitif dari A, sehingga mengubah sumber C dan membangun ulang A akan
membangun ulang semuanya dengan benar. Namun, A tidak akan dapat menggunakan class di C. Untuk mengizinkan
itu, baik A harus mendeklarasikan C dalam Penutupan library yang diekspor tersedia untuk semua aturan induk langsung. Ambil sedikit contoh yang 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 {i>library<i}, C' dan D' masing-masing, A hanya bisa mengakses C' dan bukan D'.
Penting: aturan yang diekspor bukan merupakan dependensi reguler. Berpegang pada contoh sebelumnya,
jika B mengekspor C dan ingin juga menggunakan C, ia juga harus mencantumkannya sendiri
|
javabuilder_jvm_flags
|
Daftar {i>string<i}; default-nya adalah |
javacopts
|
Daftar {i>string<i}; default-nya adalah Opsi compiler ini diteruskan ke javac setelah opsi compiler global. |
neverlink
|
Boolean; default-nya adalah tools.jar untuk semuanya
yang berjalan pada JDK standar.
Perlu diketahui 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 semua versi mendatang JLS). |
plugins
|
Daftar label; default adalah java_plugin yang ditentukan dalam atribut ini akan dijalankan setiap kali aturan ini
dibangun. Library juga dapat mewarisi plugin dari dependensi yang menggunakan
exported_plugins . Sumber daya
yang dihasilkan oleh plugin akan disertakan dalam jar yang dihasilkan dari aturan ini.
|
proguard_specs
|
Daftar label; default adalah android_binary bergantung pada library ini.
File yang disertakan di sini hanya boleh memiliki aturan idempoten, yaitu -dontnote, -dontwarning,
mengasumsikan bahwa efek samping tersebut, dan aturan
yang dimulai dengan {i>-keep<i}. Opsi lainnya hanya dapat muncul di
proguard_specs android_binary , untuk memastikan penggabungan non-tautoologis.
|
resource_strip_prefix
|
String; default-nya adalah
Jika ditentukan, awalan jalur ini akan dihapus dari setiap file dalam |
runtime_deps
|
Daftar label; default adalah deps biasa, class ini akan muncul di classpath runtime, tetapi tidak seperti
mereka, bukan pada classpath waktu kompilasi. Dependensi yang hanya diperlukan
pada runtime harus
yang tercantum di sini. Alat analisis dependensi harus mengabaikan target yang muncul di kedua
runtime_deps dan deps .
|
java_lite_proto_library
Lihat sumber aturanjava_lite_proto_library(name, deps, compatible_with, deprecation, distribs, exec_compatible_with, exec_properties, features, restricted_to, tags, target_compatible_with, testonly, toolchains, visibility)
java_lite_proto_library
membuat kode Java dari file .proto
.
deps
harus mengarah ke aturan proto_library
.
Contoh:
java_library(
name = "lib",
runtime_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; default adalah proto_library
aturan untuk menghasilkan kode Java.
|
java_proto_library
Lihat sumber aturanjava_proto_library(name, deps, compatible_with, deprecation, distribs, exec_compatible_with, exec_properties, features, licenses, restricted_to, tags, target_compatible_with, testonly, toolchains, visibility)
java_proto_library
membuat kode Java dari file .proto
.
deps
harus mengarah ke aturan proto_library
.
Contoh:
java_library(
name = "lib",
runtime_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; default adalah proto_library
aturan untuk menghasilkan kode Java.
|
java_test
Lihat sumber aturanjava_test(name, deps, srcs, data, resources, add_exports, add_opens, args, bootclasspath, 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, neverlink, plugins, 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. Metode utama runner pengujian dipanggil, bukan class utama yang dikompilasi.
Target output implisit
name.jar
: Arsip Java.name_deploy.jar
: Cocok dengan arsip Java untuk deployment. (Hanya dibuat jika diminta secara eksplisit.) Lihat deskripsiname_deploy.jar
output dari java_binary untuk detail selengkapnya.
Lihat bagian tentang argumen java_binary()
. Aturan ini juga
mendukung semua atribut yang umum
ke 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; default adalah deps di
Atribut umum didefinisikan oleh
sebagian besar aturan build.
|
srcs
|
Daftar label; default adalah
File sumber jenis
File sumber jenis
Aturan: jika aturan (biasanya
Argumen ini hampir selalu diperlukan, kecuali jika
Atribut |
data
|
Daftar label; default adalah data
pada Atribut umum didefinisikan oleh
sebagian besar aturan build.
|
resources
|
Daftar label; default adalah Resource dapat berupa file sumber atau file yang dihasilkan.
Jika sudah ditentukan, resource akan dikelompokkan dalam stoples bersama dengan
|
add_exports
|
Daftar {i>string<i}; default-nya adalah module atau package yang diberikan.
Ini berkaitan dengan flag javac dan JVM --add-exports=. |
add_opens
|
Daftar {i>string<i}; default-nya adalah module yang diberikan atau secara reflektif
package .
Ini berkaitan dengan flag javac dan JVM --add-opens=. |
bootclasspath
|
Label; default adalah |
classpath_resources
|
Daftar label; default adalah
Daftar resource yang harus ditempatkan di root hierarki java. Atribut ini
satu-satunya tujuannya adalah untuk mendukung pustaka pihak ketiga
yang mengharuskan sumber daya mereka
yang ditemukan di classpath tepatnya |
create_executable
|
Boolean; default-nya adalah java_single_jar sebagai gantinya.
|
deploy_manifest_lines
|
Daftar {i>string<i}; default-nya adalah META-INF/manifest.mf yang dibuat untuk
Target *_deploy.jar . Konten atribut ini tidak subjek
ke "Buat variabel".
|
javacopts
|
Daftar {i>string<i}; default-nya adalah Opsi compiler ini diteruskan ke javac setelah opsi compiler global. |
jvm_flags
|
Daftar {i>string<i}; default-nya adalah Skrip wrapper untuk biner Java menyertakan definisi CLASSPATH
(untuk menemukan semua jar dependen) dan memanggil penafsir Java yang tepat.
Baris perintah yang dihasilkan oleh skrip wrapper menyertakan nama
class utama diikuti dengan Perhatikan bahwa atribut ini tidak berpengaruh pada |
launcher
|
Label; default adalah bin/java normal yang disertakan dengan JDK.
Target harus berupa cc_binary . Setiap cc_binary yang
mengimplementasikan
Java Invocation API dapat ditetapkan sebagai nilai untuk atribut ini.
Secara default, Bazel akan menggunakan peluncur JDK normal (bin/java atau java.exe). Tanda 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
perubahan output |
main_class
|
String; default-nya adalah main() untuk digunakan sebagai titik entri.
Jika menggunakan opsi ini, aturan tidak memerlukan daftar srcs=[...] .
Sehingga, dengan atribut ini kita bisa membuat {i>executable<i} dari pustaka Java yang sudah
berisi satu atau beberapa metode main() .
Nilai atribut ini adalah nama class, bukan file sumber. Kelas harus
tersedia saat runtime: kode dapat dikompilasi oleh aturan ini (dari |
neverlink
|
Boolean; default-nya adalah |
plugins
|
Daftar label; default adalah java_plugin yang ditentukan dalam atribut ini akan dijalankan setiap kali aturan ini
dibangun. Library juga dapat mewarisi plugin dari dependensi yang menggunakan
exported_plugins . Sumber daya
yang dihasilkan oleh plugin akan disertakan dalam jar yang dihasilkan dari aturan ini.
|
resource_strip_prefix
|
String; default-nya adalah
Jika ditentukan, awalan jalur ini akan dihapus dari setiap file dalam |
runtime_deps
|
Daftar label; default adalah deps biasa, class ini akan muncul di classpath runtime, tetapi tidak seperti
mereka, bukan pada classpath waktu kompilasi. Dependensi yang hanya diperlukan
pada runtime harus
yang tercantum di sini. Alat analisis dependensi harus mengabaikan target yang muncul di kedua
runtime_deps dan deps .
|
stamp
|
{i>Integer<i} (Bilangan bulat): default-nya adalah
Biner yang distempel tidak dibangun ulang kecuali jika dependensinya berubah. |
test_class
|
String; default-nya adalah
Secara default, jika argumen ini tidak didefinisikan, maka mode lawas akan digunakan dan
argumen pengujian digunakan sebagai gantinya. Menetapkan tanda
Atribut ini menetapkan nama class Java yang akan dijalankan
pengujian ini. Hal ini jarang terjadi. Jika argumen ini dihilangkan,
tujuan akan disimpulkan menggunakan
Untuk JUnit3, class pengujian harus berupa subclass dari
Atribut ini memungkinkan beberapa aturan |
use_launcher
|
Boolean; default-nya adalah Jika atribut ini ditetapkan ke false, atribut
launcher dan atribut terkait
Tanda |
use_testrunner
|
Boolean; default-nya adalah com.google.testing.junit.runner.BazelTestRunner ) sebagai class
titik entri utama untuk program Java, dan menyediakan class pengujian
ke runner pengujian sebagai nilai bazel.test_suite
properti sistem.
Anda dapat menggunakannya untuk mengganti yaitu menggunakan {i> test runner<i} untuk java_test aturan,
dan tidak menggunakannya untuk aturan java_binary . Tidak mungkin
Anda pasti ingin melakukan ini. Satu penggunaan adalah untuk AllTest
aturan yang dipanggil oleh aturan lain (untuk menyiapkan database
sebelum menjalankan pengujian, misalnya). AllTest
aturan harus dideklarasikan sebagai java_binary , tetapi harus
masih menggunakan {i>test runner<i}
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, exec_compatible_with, exec_properties, features, javacopts, output_licenses, packages, restricted_to, tags, target_compatible_with, testonly, toolchains, visibility)
Konfigurasi yang akan diterapkan ke sekumpulan paket.
Konfigurasi dapat ditambahkan ke
java_toolchain.javacopts
dtk.
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; default adalah |
javacopts
|
Daftar {i>string<i}; default-nya adalah |
output_licenses
|
Daftar {i>string<i}; default-nya adalah |
packages
|
Daftar label; default adalah package_group
konfigurasi harus diterapkan.
|
java_plugin
Lihat sumber aturanjava_plugin(name, deps, srcs, data, resources, add_exports, add_opens, bootclasspath, compatible_with, deprecation, distribs, exec_compatible_with, exec_properties, features, generates_api, javabuilder_jvm_flags, javacopts, licenses, neverlink, output_licenses, plugins, processor_class, proguard_specs, resource_strip_prefix, restricted_to, tags, target_compatible_with, testonly, toolchains, visibility)
java_plugin
menentukan plugin untuk compiler Java yang dijalankan oleh Bazel. Tujuan
satu-satunya jenis plugin yang didukung adalah pemroses anotasi. java_library
atau
Aturan java_binary
dapat menjalankan plugin dengan bergantung padanya melalui plugins
. java_library
juga dapat mengekspor plugin secara otomatis ke library yang
secara langsung bergantung pada {i>cloud<i}
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; default adalah deps di
Atribut umum didefinisikan oleh
sebagian besar aturan build.
Stoples yang dibuat oleh aturan
Sebaliknya, target dalam atribut |
srcs
|
Daftar label; default adalah
File sumber jenis
File sumber jenis
Aturan: jika aturan (biasanya
File sumber jenis Semua file lainnya akan diabaikan, selama ada setidaknya satu file jenis file yang dijelaskan di atas. Jika tidak, error akan muncul.
Argumen ini hampir selalu diperlukan, kecuali jika Anda menentukan argumen |
data
|
Daftar label; default adalah data di
Atribut umum didefinisikan oleh
sebagian besar aturan build.
Saat membuat |
resources
|
Daftar label; default adalah Resource dapat berupa file sumber atau file yang dihasilkan.
Jika sudah ditentukan, resource akan dikelompokkan dalam stoples bersama dengan
|
add_exports
|
Daftar {i>string<i}; default-nya adalah module atau package yang diberikan.
Ini berkaitan dengan flag javac dan JVM --add-exports=. |
add_opens
|
Daftar {i>string<i}; default-nya adalah module yang diberikan atau secara reflektif
package .
Ini berkaitan dengan flag javac dan JVM --add-opens=. |
bootclasspath
|
Label; default adalah |
generates_api
|
Boolean; default-nya adalah Jika aturan menggunakan pemroses anotasi pembuatan API, aturan lainnya tergantung pada {i>router<i} itu dapat merujuk ke kode yang dihasilkan hanya jika tindakan kompilasi dijadwalkan setelah aturan pembuatan. Ini menginstruksikan Bazel untuk memperkenalkan batasan penjadwalan saat --java_header_compilation diaktifkan. PERINGATAN: Atribut ini memengaruhi build berperforma tinggi, gunakan hanya jika diperlukan. |
javabuilder_jvm_flags
|
Daftar {i>string<i}; default-nya adalah |
javacopts
|
Daftar {i>string<i}; default-nya adalah Opsi compiler ini diteruskan ke javac setelah opsi compiler global. |
neverlink
|
Boolean; default-nya adalah tools.jar untuk semuanya
yang berjalan pada JDK standar.
Perlu diketahui 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 semua versi mendatang JLS). |
output_licenses
|
Daftar {i>string<i}; default-nya adalah |
plugins
|
Daftar label; default adalah java_plugin yang ditentukan dalam atribut ini akan dijalankan setiap kali aturan ini
dibangun. Library juga dapat mewarisi plugin dari dependensi yang menggunakan
exported_plugins . Sumber daya
yang dihasilkan oleh plugin akan disertakan dalam jar yang dihasilkan dari aturan ini.
|
processor_class
|
String; default-nya adalah |
proguard_specs
|
Daftar label; default adalah android_binary bergantung pada library ini.
File yang disertakan di sini hanya boleh memiliki aturan idempoten, yaitu -dontnote, -dontwarning,
mengasumsikan bahwa efek samping tersebut, dan aturan
yang dimulai dengan {i>-keep<i}. Opsi lainnya hanya dapat muncul di
proguard_specs android_binary , untuk memastikan penggabungan non-tautoologis.
|
resource_strip_prefix
|
String; default-nya adalah
Jika ditentukan, awalan jalur ini akan dihapus dari setiap file dalam |
java_runtime
Lihat sumber aturanjava_runtime(name, srcs, compatible_with, default_cds, deprecation, distribs, exec_compatible_with, exec_properties, features, hermetic_srcs, hermetic_static_libs, java, java_home, lib_ct_sym, lib_modules, output_licenses, restricted_to, tags, target_compatible_with, testonly, toolchains, 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; default adalah |
default_cds
|
Label; default adalah java_runtime hermetic. Saat kedap udara
diaktifkan untuk target java_binary dan jika target tidak
menyediakan arsip CDS-nya sendiri
dengan menentukan
classlist ,
CDS default java_runtime dikemas dalam JAR deploy hermetic.
|
hermetic_srcs
|
Daftar label; default adalah |
hermetic_static_libs
|
Daftar label; default adalah |
java
|
Label; default adalah |
java_home
|
String; default-nya adalah srcs dan java harus kosong.
|
lib_ct_sym
|
Label; default adalah --release . Jika tidak ditentukan dan
Hanya ada satu file di srcs yang jalurnya diakhiri dengan
/lib/ct.sym , file tersebut digunakan.
|
lib_modules
|
Label; default adalah |
output_licenses
|
Daftar {i>string<i}; default-nya adalah |
version
|
{i>Integer<i} (Bilangan bulat): default-nya 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_javacopts, compatible_with, deprecation, deps_checker, distribs, exec_compatible_with, exec_properties, features, forcibly_disable_header_compilation, genclass, header_compiler, header_compiler_builtin_processors, header_compiler_direct, ijar, jacocorunner, java_runtime, javabuilder, javabuilder_data, javabuilder_jvm_opts, javac_supports_multiplex_workers, javac_supports_worker_cancellation, javac_supports_worker_multiplex_sandboxing, javac_supports_workers, javacopts, jspecify_implicit_deps, jspecify_javacopts, jspecify_packages, jspecify_processor, jspecify_processor_class, jspecify_stubs, jvm_opts, licenses, misc, oneversion, oneversion_allowlist_for_tests, oneversion_whitelist, package_configuration, proguard_allowlister, reduced_classpath_incompatible_processors, restricted_to, singlejar, source_version, tags, target_compatible_with, target_version, testonly, timezone_data, toolchains, 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 perlu menulis aturan seperti itu kecuali jika Anda ingin menyesuaikan compiler Java Anda.
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; default adalah |
android_lint_jvm_opts
|
Daftar {i>string<i}; default-nya adalah |
android_lint_opts
|
Daftar {i>string<i}; default-nya adalah |
android_lint_package_configuration
|
Daftar label; default adalah |
android_lint_runner
|
Label; default adalah |
bootclasspath
|
Daftar label; default adalah |
compatible_javacopts
|
null; default-nya adalah |
deps_checker
|
Label; default adalah |
forcibly_disable_header_compilation
|
Boolean; default-nya adalah |
genclass
|
Label; default adalah |
header_compiler
|
Label; default adalah |
header_compiler_builtin_processors
|
Daftar {i>string<i}; default-nya adalah |
header_compiler_direct
|
Label; default adalah Alat ini tidak mendukung pemrosesan anotasi. |
ijar
|
Label; default adalah |
jacocorunner
|
Label; default adalah |
java_runtime
|
Label; default adalah |
javabuilder
|
Label; default adalah |
javabuilder_data
|
Daftar label; default adalah |
javabuilder_jvm_opts
|
Daftar {i>string<i}; default-nya adalah |
javac_supports_multiplex_workers
|
Boolean; default-nya adalah |
javac_supports_worker_cancellation
|
Boolean; default-nya adalah |
javac_supports_worker_multiplex_sandboxing
|
Boolean; default-nya adalah |
javac_supports_workers
|
Boolean; default-nya adalah |
javacopts
|
Daftar {i>string<i}; default-nya adalah |
jspecify_implicit_deps
|
Label; default adalah |
jspecify_javacopts
|
Daftar {i>string<i}; default-nya adalah |
jspecify_packages
|
Daftar label; default adalah |
jspecify_processor
|
Label; default adalah |
jspecify_processor_class
|
String; default-nya adalah |
jspecify_stubs
|
Daftar label; default adalah |
jvm_opts
|
Daftar {i>string<i}; default-nya adalah |
misc
|
Daftar {i>string<i}; default-nya adalah |
oneversion
|
Label; default adalah |
oneversion_allowlist_for_tests
|
Label; default adalah |
oneversion_whitelist
|
Label; default adalah |
package_configuration
|
Daftar label; default adalah |
proguard_allowlister
|
Label; default adalah |
reduced_classpath_incompatible_processors
|
Daftar {i>string<i}; default-nya adalah |
singlejar
|
Label; default adalah |
source_version
|
String; default-nya adalah |
target_version
|
String; default-nya adalah |
timezone_data
|
Label; default adalah |
tools
|
Daftar label; default adalah |
turbine_data
|
Daftar label; default adalah |
turbine_jvm_opts
|
Daftar {i>string<i}; default-nya adalah |
xlint
|
Daftar {i>string<i}; default-nya adalah |