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 seperti aturannya. Skrip shell wrapper menggunakan classpath yang menyertakan, antara lain, file jar untuk setiap library tempat biner bergantung.
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 tanda 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 terkait dengan dependensi langsung biner.name-src.jar
: Arsip yang berisi sumber ("jar sumber").name_deploy.jar
: Arsip Java yang cocok untuk deployment (hanya dibangun jika diminta secara eksplisit).Dengan membuat target
<name>_deploy.jar
untuk aturan Anda, file jar mandiri akan dibuat dengan manifes yang memungkinkannya dijalankan dengan perintahjava -jar
atau dengan opsi--singlejar
skrip wrapper. Penggunaan skrip wrapper lebih diutamakan daripadajava -jar
karena juga meneruskan tanda 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. Paket ini juga berisi library native yang diperlukan untuk dependensi. Keduanya dimuat secara otomatis ke dalam JVM pada saat runtime.
Jika target Anda menentukan atribut peluncur, _deploy.jar akan berupa biner native, bukan file JAR biasa. File ini akan berisi peluncur serta dependensi native (C++) dari aturan Anda, yang semuanya ditautkan ke 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 langsung menjalankan file jar yang dihasilkan, seperti menjalankan biner native.
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 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 ini sebagai gantinya:
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 bernama Main.java , nama Anda mungkin 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. Tujuan satu-satunya atribut ini adalah untuk mendukung library pihak ketiga yang mengharuskan resource mereka ditemukan di classpath sama persis dengan |
create_executable
|
launcher atau main_class
ditetapkan.
|
deploy_env
|
java_binary lain 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 deployment) biner ini yang digunakan bersama antara biner ini dan target yang ditentukan dalam deploy_env .
|
deploy_manifest_lines
|
META-INF/manifest.mf yang dihasilkan untuk target *_deploy.jar . Konten atribut ini tidak tunduk
pada substitusi "Membuat variabel".
|
javacopts
|
Opsi compiler ini diteruskan ke javac setelah opsi compiler global. |
jvm_flags
|
Skrip wrapper untuk biner Java menyertakan definisi PATHCLASS (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 diperhatikan bahwa atribut ini tidak berpengaruh pada output |
launcher
|
bin/java normal yang disertakan dengan JDK.
Target harus berupa cc_binary . Setiap cc_binary yang
mengimplementasikan
Java Invocation API dapat ditentukan sebagai nilai untuk atribut ini.
Secara default, Bazel akan menggunakan peluncur JDK normal (bin/java atau java.exe). Flag Perhatikan bahwa dependensi native (C++, SWIG, JNI) akan dibuat secara berbeda bergantung pada apakah Anda menggunakan peluncur JDK atau peluncur lain:
Saat menggunakan peluncur selain peluncur JDK default, format
output |
main_class
|
main() untuk digunakan sebagai titik entri.
Aturan yang menggunakan opsi ini tidak memerlukan daftar srcs=[...] .
Dengan demikian, dengan atribut ini, seseorang dapat menjadikan 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 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 yang dihasilkan aturan ini.
|
resource_jars
|
|
resource_strip_prefix
|
Jika ditentukan, awalan jalur ini akan dihapus dari setiap file dalam atribut
|
runtime_deps
|
deps biasa, parameter ini akan muncul pada classpath runtime, tetapi berbeda dari
class tersebut, bukan pada classpath waktu kompilasi. Dependensi yang hanya diperlukan selama runtime harus tercantum di sini. Alat analisis dependensi harus mengabaikan target yang muncul di runtime_deps dan deps .
|
stamp
|
Biner berstempel tidak dibuat ulang kecuali dependensinya berubah. |
use_launcher
|
Jika atribut ini ditetapkan ke false, atribut
launcher dan flag
|
use_testrunner
|
com.google.testing.junit.runner.BazelTestRunner ) sebagai
titik entri utama untuk program Java, dan berikan class pengujian
tersebut 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 . Sangat kecil kemungkinannya
Anda ingin melakukannya. Salah satunya 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
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 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 apa pun, bergantung pada library ini.
File yang disertakan di sini hanya boleh memiliki aturan idempoten, yaitu -dontnote, -dontwarning,
menganggapnosideEffect, dan aturan yang dimulai dengan -keep. Opsi lain hanya dapat muncul di
proguard_specs android_binary , untuk memastikan penggabungan non-tautological.
|
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 ("jar 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 secara langsung bergantung pada library ini.
Daftar |
exports
|
Mencantumkan aturan di sini akan membuatnya tersedia untuk aturan induk, seolah-olah induk tersebut secara eksplisit
bergantung pada aturan tersebut. Hal ini tidak berlaku untuk
Ringkasan: aturan X dapat mengakses kode dalam Y jika ada jalur dependensi di antaranya yang dimulai dengan tepi
Asumsikan A bergantung pada B, dan B bergantung pada C. Dalam hal ini, C adalah dependensi transitif dari A. Jadi, mengubah sumber C dan mem-build ulang A akan membangun ulang semuanya dengan benar. Namun, A tidak akan dapat menggunakan class di C. Agar
hal tersebut dapat dilakukan, 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', A hanya dapat mengakses C', tetapi tidak D'.
Penting: aturan yang diekspor bukan dependensi reguler. Tetap berpegang pada contoh sebelumnya, jika B mengekspor C dan juga ingin menggunakan C, B harus mencantumkannya dalam |
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-tempat yang JLS melarang compiler untuk inline (dan library tersebut harus berlaku 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 yang dihasilkan aturan ini.
|
proguard_specs
|
android_binary apa pun, bergantung pada library ini.
File yang disertakan di sini hanya boleh memiliki aturan idempoten, yaitu -dontnote, -dontwarning,
menganggapnosideEffect, dan aturan yang dimulai dengan -keep. Opsi lain hanya dapat muncul di
proguard_specs android_binary , untuk memastikan penggabungan non-tautological.
|
resource_jars
|
|
resource_strip_prefix
|
Jika ditentukan, awalan jalur ini akan dihapus dari setiap file dalam atribut
|
runtime_deps
|
deps biasa, parameter ini akan muncul pada classpath runtime, tetapi berbeda dari
class tersebut, bukan pada classpath waktu kompilasi. Dependensi yang hanya diperlukan selama runtime harus tercantum di sini. Alat analisis dependensi harus mengabaikan target yang muncul di 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 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 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 yang mengelilingi 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 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 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. Tujuan satu-satunya atribut ini adalah untuk mendukung library pihak ketiga yang mengharuskan resource mereka ditemukan di classpath sama persis dengan |
create_executable
|
launcher atau main_class
ditetapkan.
|
deploy_manifest_lines
|
META-INF/manifest.mf yang dihasilkan untuk target *_deploy.jar . Konten atribut ini tidak tunduk
pada substitusi "Membuat variabel".
|
javacopts
|
Opsi compiler ini diteruskan ke javac setelah opsi compiler global. |
jvm_flags
|
Skrip wrapper untuk biner Java menyertakan definisi PATHCLASS (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 diperhatikan bahwa atribut ini tidak berpengaruh pada output |
launcher
|
bin/java normal yang disertakan dengan JDK.
Target harus berupa cc_binary . Setiap cc_binary yang
mengimplementasikan
Java Invocation API dapat ditentukan sebagai nilai untuk atribut ini.
Secara default, Bazel akan menggunakan peluncur JDK normal (bin/java atau java.exe). Flag Perhatikan bahwa dependensi native (C++, SWIG, JNI) akan dibuat secara berbeda bergantung pada apakah Anda menggunakan peluncur JDK atau peluncur lain:
Saat menggunakan peluncur selain peluncur JDK default, format
output |
main_class
|
main() untuk digunakan sebagai titik entri.
Aturan yang menggunakan opsi ini tidak memerlukan daftar srcs=[...] .
Dengan demikian, dengan atribut ini, seseorang dapat menjadikan 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 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 yang dihasilkan aturan ini.
|
resource_jars
|
|
resource_strip_prefix
|
Jika ditentukan, awalan jalur ini akan dihapus dari setiap file dalam atribut
|
runtime_deps
|
deps biasa, parameter ini akan muncul pada classpath runtime, tetapi berbeda dari
class tersebut, bukan pada classpath waktu kompilasi. Dependensi yang hanya diperlukan selama runtime harus tercantum di sini. Alat analisis dependensi harus mengabaikan target yang muncul di runtime_deps dan deps .
|
stamp
|
Biner berstempel tidak dibuat ulang kecuali dependensinya berubah. |
test_class
|
Secara default, jika argumen ini tidak ditentukan, mode lama akan digunakan dan
argumen pengujian akan digunakan sebagai gantinya. Tetapkan flag
Atribut ini menentukan nama class Java yang akan dijalankan oleh
pengujian ini. Sangat jarang untuk menetapkan setelan ini. Jika dihilangkan, argumen ini 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 flag
|
use_testrunner
|
com.google.testing.junit.runner.BazelTestRunner ) sebagai
titik entri utama untuk program Java, dan berikan class pengujian
tersebut 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 . Sangat kecil kemungkinannya
Anda ingin melakukannya. Salah satunya 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
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 satu set 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 tempat konfigurasi akan 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. 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 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 ke kode yang dihasilkan hanya jika tindakan kompilasinya dijadwalkan setelah aturan pembuatan. Atribut ini meminta Bazel untuk memperkenalkan batasan penjadwalan saat --java_header_compilation diaktifkan. PERINGATAN: Atribut ini memengaruhi performa build, gunakan hanya jika perlu. |
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-tempat yang JLS melarang compiler untuk inline (dan library tersebut harus berlaku 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 yang dihasilkan aturan ini.
|
processor_class
|
|
proguard_specs
|
android_binary apa pun, bergantung pada library ini.
File yang disertakan di sini hanya boleh memiliki aturan idempoten, yaitu -dontnote, -dontwarning,
menganggapnosideEffect, dan aturan yang dimulai dengan -keep. Opsi lain hanya dapat muncul di
proguard_specs android_binary , untuk memastikan penggabungan non-tautological.
|
resource_jars
|
|
resource_strip_prefix
|
Jika ditentukan, awalan jalur ini akan dihapus dari setiap file dalam atribut
|
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 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 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
|
|