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"), serta skrip shell wrapper dengan nama yang sama seperti aturan.
  Skrip shell wrapper menggunakan classpath yang mencakup, antara lain, file jar untuk setiap
  library yang menjadi dependensi biner. Saat menjalankan skrip shell wrapper, variabel lingkungan JAVABIN yang tidak kosong akan diprioritaskan 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 dan variabel lingkungan yang dapat dikonfigurasi 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 ("source jar").
- name_deploy.jar: Arsip Java yang cocok untuk deployment (hanya dibuat jika diminta secara eksplisit).- Membangun target - <name>_deploy.jaruntuk aturan Anda membuat file jar mandiri dengan manifes yang memungkinkannya dijalankan dengan perintah- java -jaratau dengan opsi- --singlejarskrip wrapper. Penggunaan skrip wrapper lebih disarankan daripada- java -jarkarena juga meneruskan flag JVM dan opsi untuk memuat library native.- JAR deployment berisi semua class yang akan ditemukan oleh classloader yang menelusuri classpath dari skrip wrapper biner dari awal hingga akhir. Direktori ini juga berisi library native yang diperlukan untuk dependensi. File ini otomatis dimuat ke dalam JVM saat runtime. - Jika target Anda menentukan atribut peluncur, maka _deploy.jar akan menjadi biner native, bukan file JAR biasa. Ini akan berisi peluncur dan dependensi native (C++) aturan Anda, yang semuanya ditautkan ke dalam biner statis. Byte file jar sebenarnya akan ditambahkan ke biner native tersebut, sehingga membuat blob biner tunggal yang berisi kode Java dan yang dapat dieksekusi. Anda dapat menjalankan file jar yang dihasilkan secara langsung seperti menjalankan biner native lainnya. 
- name_deploy-src.jar: Arsip yang berisi sumber yang dikumpulkan dari penutupan transitif target. Ini akan cocok dengan class di- deploy.jarkecuali jika jar tidak memiliki jar sumber yang cocok.
  Atribut deps tidak diizinkan dalam aturan java_binary tanpa
  srcs; aturan tersebut memerlukan
  main_class yang disediakan oleh
  runtime_deps.
Cuplikan kode berikut mengilustrasikan kesalahan umum:
java_binary(
    name = "DontDoThis",
    srcs = [
        ...,
        "GeneratedJavaFile.java",  # a generated .java file
    ],
    deps = [":generating_rule",],  # rule that generates that file
)
Lakukan hal berikut:
java_binary(
    name = "DoThisInstead",
    srcs = [
        ...,
        ":generating_rule",
    ],
)
Argumen
| Atribut | |
|---|---|
| name | Nama; wajib Nama unik untuk target ini. Sebaiknya gunakan nama file sumber yang merupakan titik entri utama aplikasi (tanpa ekstensi). Misalnya, jika titik entri Anda disebut Main.java, maka nama Anda bisaMain. | 
| deps | Daftar label; defaultnya adalah  depsdi
          Atribut umum yang ditentukan oleh
          sebagian besar aturan build. | 
| srcs | Daftar label; defaultnya adalah  
            File sumber berjenis  
            File sumber berjenis  
            Aturan: jika aturan (biasanya  
            Argumen ini hampir selalu diperlukan, kecuali jika atribut
             | 
| resources | Daftar label; defaultnya adalah  
            Jika ditentukan, resource akan dibundel dalam JAR bersama dengan file  Aset dapat berupa file sumber atau file yang dihasilkan. | 
| classpath_resources | Daftar label; defaultnya adalah  
            Daftar resource yang harus berada di root pohon java. Satu-satunya tujuan atribut ini adalah untuk mendukung library pihak ketiga yang mengharuskan resource-nya ditemukan di classpath sebagai  | 
| create_executable | Boolean; tidak dapat dikonfigurasi; defaultnya adalah  java_single_jarsebagai gantinya. | 
| deploy_env | Daftar label; defaultnya adalah  java_binarylainnya yang merepresentasikan lingkungan
        deployment untuk biner ini.
        Tetapkan atribut ini saat membangun plugin yang akan dimuat olehjava_binarylain.Menetapkan atribut ini akan mengecualikan semua dependensi dari classpath runtime (dan jar deployment) biner ini yang dibagikan antara biner ini dan target yang ditentukan dalam deploy_env. | 
| deploy_manifest_lines | Daftar string; defaultnya adalah  META-INF/manifest.mfyang dihasilkan untuk
          target*_deploy.jar. Isi atribut ini tidak tunduk pada
          penggantian "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 mencakup definisi CLASSPATH
          (untuk menemukan semua JAR dependen) dan memanggil interpreter Java yang tepat.
          Baris perintah yang dihasilkan oleh skrip wrapper mencakup nama
          class utama yang diikuti dengan  Perhatikan bahwa atribut ini tidak berpengaruh pada output  | 
| launcher | Label; defaultnya adalah  bin/javanormal yang disertakan dengan JDK.
          Target harus berupacc_binary.cc_binaryapa pun yang
          menerapkan
          
          Java Invocation API dapat ditentukan sebagai nilai untuk atribut ini.Secara default, Bazel akan menggunakan peluncur JDK normal (bin/java atau java.exe). Flag Bazel  Perhatikan bahwa dependensi native (C++, SWIG, JNI) Anda akan dibangun secara berbeda bergantung pada apakah Anda menggunakan peluncur JDK atau peluncur lain: 
 Saat menggunakan peluncur JDK selain peluncur JDK default, format
          output  | 
| main_class | String; default-nya adalah  main()yang akan digunakan sebagai titik entri.
          Jika menggunakan opsi ini, aturan tidak memerlukan daftarsrcs=[...].
          Dengan demikian, dengan atribut ini, Anda dapat membuat file yang dapat dieksekusi dari library Java yang sudah
          berisi satu atau beberapa metodemain().
            Nilai atribut ini adalah nama class, bukan file sumber. Class harus
            tersedia saat runtime: class dapat dikompilasi oleh aturan ini (dari  | 
| plugins | Daftar label; defaultnya adalah  java_pluginyang ditentukan dalam atribut ini akan dijalankan setiap kali aturan ini dibuat. Library juga dapat mewarisi plugin dari dependensi yang menggunakanexported_plugins. Resource
          yang dihasilkan oleh plugin akan disertakan dalam jar yang dihasilkan dari aturan ini. | 
| resource_jars | Daftar label; defaultnya adalah  | 
| resource_strip_prefix | String; default-nya adalah  
            Jika ditentukan, awalan jalur ini akan dihapus dari setiap file dalam atribut  | 
| runtime_deps | Daftar label; defaultnya adalah  depsbiasa, ini akan muncul di classpath runtime, tetapi tidak seperti
          itu, tidak di classpath waktu kompilasi. Dependensi yang hanya diperlukan saat runtime harus
          dicantumkan di sini. Alat analisis dependensi harus mengabaikan target yang muncul diruntime_depsdandeps. | 
| stamp | Bilangan bulat; defaultnya adalah  
 Biner yang diberi stempel tidak dibangun ulang kecuali jika dependensinya berubah. | 
| use_launcher | Boolean; defaultnya adalah  Jika atribut ini disetel ke salah (false), atribut
          peluncur dan tanda
           | 
| use_testrunner | Boolean; defaultnya adalah  com.google.testing.junit.runner.BazelTestRunner) sebagai
          titik entri utama untuk program Java, dan berikan class pengujian
          ke runner pengujian sebagai nilai properti sistembazel.test_suite.
          Anda dapat menggunakannya untuk mengganti perilaku default, yaitu menggunakan peluncur pengujian untuk aturanjava_test, dan tidak menggunakannya untuk aturanjava_binary.  Anda mungkin tidak ingin melakukannya.  Salah satu penggunaannya adalah untukAllTestaturan yang dipanggil oleh aturan lain (misalnya, untuk menyiapkan database
          sebelum menjalankan pengujian).  AturanAllTestharus dideklarasikan sebagaijava_binary, tetapi harus
          tetap menggunakan peluncur pengujian sebagai titik entri utamanya.
          Nama class test runner dapat diganti dengan atributmain_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 memungkinkan 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 Nama unik untuk target ini. | 
| deps | Daftar label; defaultnya adalah  | 
| constraints | Daftar string; tidak dapat dikonfigurasi; defaultnya adalah  | 
| exports | Daftar label; defaultnya adalah  | 
| jars | Daftar label; wajib diisiDaftar file JAR yang disediakan untuk target Java yang bergantung pada target ini. | 
| neverlink | Boolean; defaultnya adalah  tools.jaruntuk apa pun yang berjalan di
        JDK standar. | 
| proguard_specs | Daftar label; defaultnya adalah  android_binarymana pun yang bergantung pada library ini.
        File yang disertakan di sini hanya boleh memiliki aturan idempoten, yaitu -dontnote, -dontwarn,
        assumenosideeffects, dan aturan yang dimulai dengan -keep. Opsi lain hanya dapat muncul di
        proguard_specsandroid_binary, untuk memastikan penggabungan non-tautologi. | 
| 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 ("source jar").
Argumen
| Atribut | |
|---|---|
| name | Nama; wajib Nama unik untuk target ini. | 
| deps | Daftar label; defaultnya adalah  depsdi
        Atribut umum yang ditentukan oleh
        sebagian besar aturan build.
          JAR yang dibuat oleh aturan  
          Sebaliknya, target dalam atribut  | 
| srcs | Daftar label; defaultnya adalah  
            File sumber berjenis  
            File sumber berjenis  
            Aturan: jika aturan (biasanya  
            Argumen ini hampir selalu diperlukan, kecuali jika atribut
             | 
| data | Daftar label; defaultnya adalah  datadi
        Atribut umum yang ditentukan oleh
        sebagian besar aturan build.
          Saat membangun  | 
| resources | Daftar label; defaultnya adalah  
            Jika ditentukan, resource akan dibundel dalam JAR bersama dengan file  Aset dapat berupa file sumber atau file yang dihasilkan. | 
| exported_plugins | Daftar label; defaultnya adalah  java_plugins (misalnya, pemroses anotasi) untuk 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 secara eksplisit
          bergantung pada aturan ini. Hal ini tidak berlaku untuk  
          Ringkasan: aturan X dapat mengakses kode di Y jika ada jalur
          dependensi di antara keduanya yang dimulai dengan tepi  
          Asumsikan A bergantung pada B dan B bergantung pada C. Dalam hal ini
          C adalah dependensi transitif dari A, jadi mengubah sumber C dan membangun ulang A akan
          membangun ulang semuanya dengan benar. Namun, A tidak akan dapat menggunakan class di C. Untuk mengizinkan
          hal tersebut, A harus mendeklarasikan C di  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, serta mengekspor C, tetapi tidak mengekspor D. Sekarang A memiliki akses ke C, tetapi tidak ke D. Sekarang, jika C dan D mengekspor beberapa pustaka, C' dan D' masing-masing, A hanya dapat mengakses C', tetapi tidak dapat mengakses D'. 
          Penting: aturan yang diekspor bukanlah dependensi reguler. Mengikuti contoh sebelumnya,
          jika B mengekspor C dan ingin menggunakan C juga, B harus mencantumkannya juga di
           | 
| javacopts | Daftar string; defaultnya adalah  Opsi compiler ini diteruskan ke javac setelah opsi compiler global. | 
| neverlink | Boolean; defaultnya adalah  tools.jaruntuk apa pun
        yang berjalan di JDK standar.
          Perhatikan bahwa  Jika library runtime berbeda dengan library kompilasi, Anda harus memastikan bahwa library tersebut hanya berbeda di tempat yang melarang compiler untuk melakukan inline (dan hal ini harus berlaku untuk semua versi JLS mendatang). | 
| plugins | Daftar label; defaultnya adalah  java_pluginyang ditentukan dalam atribut ini akan dijalankan setiap kali aturan ini dibuat. Library juga dapat mewarisi plugin dari dependensi yang menggunakanexported_plugins. Resource
          yang dihasilkan oleh plugin akan disertakan dalam jar yang dihasilkan dari aturan ini. | 
| proguard_specs | Daftar label; defaultnya adalah  android_binarymana pun yang bergantung pada library ini.
        File yang disertakan di sini hanya boleh memiliki aturan idempoten, yaitu -dontnote, -dontwarn,
        assumenosideeffects, dan aturan yang dimulai dengan -keep. Opsi lain hanya dapat muncul di
        proguard_specsandroid_binary, untuk memastikan penggabungan non-tautologi. | 
| resource_jars | Daftar label; defaultnya adalah  | 
| resource_strip_prefix | String; default-nya adalah  
            Jika ditentukan, awalan jalur ini akan dihapus dari setiap file dalam atribut  | 
| runtime_deps | Daftar label; defaultnya adalah  depsbiasa, ini akan muncul di classpath runtime, tetapi tidak seperti
          itu, tidak di classpath waktu kompilasi. Dependensi yang hanya diperlukan saat runtime harus
          dicantumkan di sini. Alat analisis dependensi harus mengabaikan target yang muncul diruntime_depsdandeps. | 
java_lite_proto_library
Lihat sumber aturanjava_lite_proto_library(name, deps, data, compatible_with, deprecation, distribs, exec_compatible_with, exec_properties, features, licenses, restricted_to, tags, target_compatible_with, testonly, visibility)
java_lite_proto_library menghasilkan kode Java dari 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 Nama unik untuk target ini. | 
| deps | Daftar label; defaultnya adalah  proto_libraryuntuk 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 menghasilkan 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 Nama unik untuk target ini. | 
| deps | Daftar label; defaultnya adalah  proto_libraryuntuk 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 pelaksana pengujian dipanggil, bukan class utama yang dikompilasi.
Target output implisit
- name.jar: Arsip Java.
- name_deploy.jar: Arsip Java yang sesuai untuk deployment. (Hanya dibuat jika diminta secara eksplisit.) Lihat deskripsi output- name_deploy.jardari java_binary untuk mengetahui detail selengkapnya.
Lihat bagian tentang argumen java_binary(). Aturan ini juga mendukung semua atribut 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 Nama unik untuk target ini. | 
| deps | Daftar label; defaultnya adalah  depsdi
          Atribut umum yang ditentukan oleh
          sebagian besar aturan build. | 
| srcs | Daftar label; defaultnya adalah  
            File sumber berjenis  
            File sumber berjenis  
            Aturan: jika aturan (biasanya  
            Argumen ini hampir selalu diperlukan, kecuali jika atribut
             | 
| resources | Daftar label; defaultnya adalah  
            Jika ditentukan, resource akan dibundel dalam JAR bersama dengan file  Aset dapat berupa file sumber atau file yang dihasilkan. | 
| classpath_resources | Daftar label; defaultnya adalah  
            Daftar resource yang harus berada di root pohon java. Satu-satunya tujuan atribut ini adalah untuk mendukung library pihak ketiga yang mengharuskan resource-nya ditemukan di classpath sebagai  | 
| create_executable | Boolean; tidak dapat dikonfigurasi; defaultnya adalah  java_single_jarsebagai gantinya. | 
| deploy_manifest_lines | Daftar string; defaultnya adalah  META-INF/manifest.mfyang dihasilkan untuk
          target*_deploy.jar. Isi atribut ini tidak tunduk pada
          penggantian "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 mencakup definisi CLASSPATH
          (untuk menemukan semua JAR dependen) dan memanggil interpreter Java yang tepat.
          Baris perintah yang dihasilkan oleh skrip wrapper mencakup nama
          class utama yang diikuti dengan  Perhatikan bahwa atribut ini tidak berpengaruh pada output  | 
| launcher | Label; defaultnya adalah  bin/javanormal yang disertakan dengan JDK.
          Target harus berupacc_binary.cc_binaryapa pun yang
          menerapkan
          
          Java Invocation API dapat ditentukan sebagai nilai untuk atribut ini.Secara default, Bazel akan menggunakan peluncur JDK normal (bin/java atau java.exe). Flag Bazel  Perhatikan bahwa dependensi native (C++, SWIG, JNI) Anda akan dibangun secara berbeda bergantung pada apakah Anda menggunakan peluncur JDK atau peluncur lain: 
 Saat menggunakan peluncur JDK selain peluncur JDK default, format
          output  | 
| main_class | String; default-nya adalah  main()yang akan digunakan sebagai titik entri.
          Jika menggunakan opsi ini, aturan tidak memerlukan daftarsrcs=[...].
          Dengan demikian, dengan atribut ini, Anda dapat membuat file yang dapat dieksekusi dari library Java yang sudah
          berisi satu atau beberapa metodemain().
            Nilai atribut ini adalah nama class, bukan file sumber. Class harus
            tersedia saat runtime: class dapat dikompilasi oleh aturan ini (dari  | 
| plugins | Daftar label; defaultnya adalah  java_pluginyang ditentukan dalam atribut ini akan dijalankan setiap kali aturan ini dibuat. Library juga dapat mewarisi plugin dari dependensi yang menggunakanexported_plugins. Resource
          yang dihasilkan oleh plugin akan disertakan dalam jar yang dihasilkan dari aturan ini. | 
| resource_jars | Daftar label; defaultnya adalah  | 
| resource_strip_prefix | String; default-nya adalah  
            Jika ditentukan, awalan jalur ini akan dihapus dari setiap file dalam atribut  | 
| runtime_deps | Daftar label; defaultnya adalah  depsbiasa, ini akan muncul di classpath runtime, tetapi tidak seperti
          itu, tidak di classpath waktu kompilasi. Dependensi yang hanya diperlukan saat runtime harus
          dicantumkan di sini. Alat analisis dependensi harus mengabaikan target yang muncul diruntime_depsdandeps. | 
| stamp | Bilangan bulat; defaultnya adalah  
 Biner yang diberi stempel tidak dibangun ulang kecuali jika dependensinya berubah. | 
| test_class | String; default-nya adalah  
          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. Anda jarang perlu menyetelnya. Jika argumen ini dihilangkan,
          argumen akan disimpulkan menggunakan  
          Untuk JUnit3, class pengujian harus berupa subclass dari
           
          Atribut ini memungkinkan beberapa aturan  | 
| use_launcher | Boolean; defaultnya adalah  Jika atribut ini disetel ke salah (false), atribut
          peluncur dan tanda
           | 
| use_testrunner | Boolean; defaultnya adalah  com.google.testing.junit.runner.BazelTestRunner) sebagai
          titik entri utama untuk program Java, dan berikan class pengujian
          ke runner pengujian sebagai nilai properti sistembazel.test_suite.
          Anda dapat menggunakannya untuk mengganti perilaku default, yaitu menggunakan peluncur pengujian untuk aturanjava_test, dan tidak menggunakannya untuk aturanjava_binary.  Anda mungkin tidak ingin melakukannya.  Salah satu penggunaannya adalah untukAllTestaturan yang dipanggil oleh aturan lain (misalnya, untuk menyiapkan database
          sebelum menjalankan pengujian).  AturanAllTestharus dideklarasikan sebagaijava_binary, tetapi harus
          tetap menggunakan peluncur pengujian sebagai titik entri utamanya.
          Nama class test runner dapat diganti dengan atributmain_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 Nama unik untuk target ini. | 
| data | Daftar label; defaultnya adalah  | 
| javacopts | Daftar string; defaultnya adalah  | 
| packages | Daftar label; defaultnya adalah  package_groupyang
        konfigurasinya harus 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 padanya melalui atribut plugins. java_library juga dapat otomatis mengekspor plugin ke library yang
  bergantung langsung padanya menggunakan
  exported_plugins.
Target output implisit
- libname.jar: Arsip Java.
  Argumen identik dengan java_library, kecuali
  untuk penambahan argumen processor_class.
Argumen
| Atribut | |
|---|---|
| name | Nama; wajib Nama unik untuk target ini. | 
| deps | Daftar label; defaultnya adalah  depsdi
        Atribut umum yang ditentukan oleh
        sebagian besar aturan build.
          JAR yang dibuat oleh aturan  
          Sebaliknya, target dalam atribut  | 
| srcs | Daftar label; defaultnya adalah  
            File sumber berjenis  
            File sumber berjenis  
            Aturan: jika aturan (biasanya  
            Argumen ini hampir selalu diperlukan, kecuali jika atribut
             | 
| data | Daftar label; defaultnya adalah  datadi
        Atribut umum yang ditentukan oleh
        sebagian besar aturan build.
          Saat membangun  | 
| resources | Daftar label; defaultnya adalah  
            Jika ditentukan, resource akan dibundel dalam JAR bersama dengan file  Aset dapat berupa file sumber atau file yang dihasilkan. | 
| generates_api | Boolean; defaultnya adalah  Jika aturan menggunakan pemroses anotasi yang menghasilkan API, aturan lain yang bergantung padanya hanya dapat merujuk ke kode yang dihasilkan jika tindakan kompilasinya dijadwalkan setelah aturan yang menghasilkan. Atribut ini menginstruksikan Bazel untuk memperkenalkan batasan penjadwalan saat --java_header_compilation diaktifkan. PERINGATAN: Atribut ini memengaruhi performa build, gunakan hanya jika diperlukan. | 
| javacopts | Daftar string; defaultnya adalah  Opsi compiler ini diteruskan ke javac setelah opsi compiler global. | 
| neverlink | Boolean; defaultnya adalah  tools.jaruntuk apa pun
        yang berjalan di JDK standar.
          Perhatikan bahwa  Jika library runtime berbeda dengan library kompilasi, Anda harus memastikan bahwa library tersebut hanya berbeda di tempat yang melarang compiler untuk melakukan inline (dan hal ini harus berlaku untuk semua versi JLS mendatang). | 
| output_licenses | Jenis lisensi; defaultnya adalah  common attributes
         | 
| plugins | Daftar label; defaultnya adalah  java_pluginyang ditentukan dalam atribut ini akan dijalankan setiap kali aturan ini dibuat. Library juga dapat mewarisi plugin dari dependensi yang menggunakanexported_plugins. Resource
          yang dihasilkan oleh plugin akan disertakan dalam jar yang dihasilkan dari aturan ini. | 
| processor_class | String; default-nya adalah  | 
| proguard_specs | Daftar label; defaultnya adalah  android_binarymana pun yang bergantung pada library ini.
        File yang disertakan di sini hanya boleh memiliki aturan idempoten, yaitu -dontnote, -dontwarn,
        assumenosideeffects, dan aturan yang dimulai dengan -keep. Opsi lain hanya dapat muncul di
        proguard_specsandroid_binary, untuk memastikan penggabungan non-tautologi. | 
| resource_jars | Daftar label; defaultnya adalah  | 
| resource_strip_prefix | String; default-nya 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 Nama unik untuk target ini. | 
| srcs | Daftar label; defaultnya adalah  | 
| default_cds | Label; defaultnya adalah  java_runtimehermetik. Jika hermetik
        diaktifkan untuk targetjava_binarydan jika target tidak
        menyediakan arsip CDS-nya sendiri dengan menentukan
        atributclasslist,
        CDS defaultjava_runtimedikemas dalam JAR deployment hermetik. | 
| hermetic_srcs | Daftar label; defaultnya adalah  | 
| java | Label; defaultnya adalah  | 
| java_home | String; default-nya adalah  srcsdanjavaharus kosong. | 
| lib_ct_sym | Label; defaultnya adalah  --release. Jika tidak ditentukan dan
        ada tepat satu file disrcsyang jalur filenya berakhiran 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_worker_multiplex_sandboxing, 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. Rangkaian alat yang akan digunakan dapat diubah melalui argumen --java_toolchain. Biasanya Anda tidak boleh menulis aturan semacam itu kecuali jika Anda ingin menyetel 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 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 diisiLabel file jar deployment GenClass. | 
| header_compiler | Daftar label; defaultnya adalah  | 
| header_compiler_direct | Daftar label; defaultnya adalah  Alat ini tidak mendukung pemrosesan anotasi. | 
| ijar | Daftar label; wajib diisiLabel file yang dapat dieksekusi ijar. | 
| jacocorunner | Label; defaultnya adalah  | 
| java_runtime | Label; wajibjava_runtime yang akan digunakan dengan toolchain ini. Defaultnya adalah java_runtime dalam konfigurasi eksekusi. | 
| javabuilder | Daftar label; wajib diisiLabel jar deployment JavaBuilder. | 
| javabuilder_data | Daftar label; defaultnya adalah  | 
| javabuilder_jvm_opts | Daftar string; defaultnya adalah  | 
| javac_supports_multiplex_workers | Boolean; defaultnya adalah  | 
| javac_supports_worker_multiplex_sandboxing | 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 diisiLabel jar deployment SingleJar. | 
| source_version | String; default-nya adalah  | 
| target_version | String; default-nya 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  |