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
java_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.
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 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
|
deps di
Atribut umum didefinisikan 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 sudah ditentukan, resource akan dikelompokkan dalam stoples bersama dengan
Resource dapat berupa file sumber atau file yang dihasilkan. |
classpath_resources
|
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
|
launcher atau main_class
ditetapkan.
|
deploy_env
|
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
|
META-INF/manifest.mf yang dibuat untuk
Target *_deploy.jar . Konten atribut ini tidak subjek
ke "Buat 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.
Baris perintah yang dihasilkan oleh skrip wrapper menyertakan nama
class utama diikuti dengan Perhatikan bahwa atribut ini tidak berpengaruh pada |
launcher
|
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
|
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
|
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
|
|
resource_strip_prefix
|
Jika ditentukan, awalan jalur ini akan dihapus dari setiap file dalam |
runtime_deps
|
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
|
Biner yang distempel tidak dibangun ulang kecuali jika dependensinya berubah. |
use_launcher
|
Jika atribut ini ditetapkan ke false, atribut
launcher dan atribut terkait
Tanda |
use_testrunner
|
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
java_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 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 unik untuk target ini. |
deps
|
|
constraints
|
|
exports
|
|
jars
|
|
neverlink
|
tools.jar untuk apa pun yang berjalan di
JDK standar.
|
proguard_specs
|
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
|
|
srcjar
|
|
java_library
java_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 ("sumber stoples").
Argumen
Atribut | |
---|---|
name |
Nama unik untuk target ini. |
deps
|
deps di
Atribut umum didefinisikan oleh
sebagian besar aturan build.
Stoples 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 didefinisikan oleh
sebagian besar aturan build.
Saat membuat |
resources
|
Jika sudah ditentukan, resource akan dikelompokkan dalam stoples bersama dengan
Resource dapat berupa file sumber atau file yang dihasilkan. |
exported_plugins
|
java_plugin (mis. anotasi
pemroses) untuk mengekspor ke library yang bergantung langsung pada library ini.
Daftar |
exports
|
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
|
javacopts
|
Opsi compiler ini diteruskan ke javac setelah opsi compiler global. |
neverlink
|
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
|
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
|
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_jars
|
|
resource_strip_prefix
|
Jika ditentukan, awalan jalur ini akan dihapus dari setiap file dalam |
runtime_deps
|
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
java_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 unik untuk target ini. |
deps
|
proto_library
aturan untuk menghasilkan kode Java.
|
java_proto_library
java_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 unik untuk target ini. |
deps
|
proto_library
aturan untuk menghasilkan kode Java.
|
java_test
java_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. 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 unik untuk target ini. |
deps
|
deps di
Atribut umum didefinisikan 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 sudah ditentukan, resource akan dikelompokkan dalam stoples bersama dengan
Resource dapat berupa file sumber atau file yang dihasilkan. |
classpath_resources
|
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
|
launcher atau main_class
ditetapkan.
|
deploy_manifest_lines
|
META-INF/manifest.mf yang dibuat untuk
Target *_deploy.jar . Konten atribut ini tidak subjek
ke "Buat 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.
Baris perintah yang dihasilkan oleh skrip wrapper menyertakan nama
class utama diikuti dengan Perhatikan bahwa atribut ini tidak berpengaruh pada |
launcher
|
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
|
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
|
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
|
|
resource_strip_prefix
|
Jika ditentukan, awalan jalur ini akan dihapus dari setiap file dalam |
runtime_deps
|
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
|
Biner yang distempel tidak dibangun ulang kecuali jika dependensinya berubah. |
test_class
|
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
|
Jika atribut ini ditetapkan ke false, atribut
launcher dan atribut terkait
Tanda |
use_testrunner
|
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
java_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
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 unik untuk target ini. |
data
|
|
javacopts
|
|
packages
|
package_group
konfigurasi harus diterapkan.
|
java_plugin
java_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. 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 unik untuk target ini. |
deps
|
deps di
Atribut umum didefinisikan oleh
sebagian besar aturan build.
Stoples 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 didefinisikan oleh
sebagian besar aturan build.
Saat membuat |
resources
|
Jika sudah ditentukan, resource akan dikelompokkan dalam stoples bersama dengan
Resource dapat berupa file sumber atau file yang dihasilkan. |
generates_api
|
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. |
javacopts
|
Opsi compiler ini diteruskan ke javac setelah opsi compiler global. |
neverlink
|
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
|
common attributes
|
plugins
|
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
|
|
proguard_specs
|
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_jars
|
|
resource_strip_prefix
|
Jika ditentukan, awalan jalur ini akan dihapus dari setiap file dalam |
java_runtime
java_runtime(name, srcs, compatible_with, 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
|
|
hermetic_srcs
|
|
java
|
|
java_home
|
srcs dan java harus kosong.
|
lib_modules
|
|
version
|
Runtime.version().feature() .
|
java_toolchain
java_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 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 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
|
|