规则
- <ph type="x-smartling-placeholder"></ph> java_binary
 - <ph type="x-smartling-placeholder"></ph> java_import
 - <ph type="x-smartling-placeholder"></ph> java_library
 - <ph type="x-smartling-placeholder"></ph> java_lite_proto_library
 - <ph type="x-smartling-placeholder"></ph> java_proto_library
 - <ph type="x-smartling-placeholder"></ph> java_test
 - <ph type="x-smartling-placeholder"></ph> java_package_configuration
 - <ph type="x-smartling-placeholder"></ph> java_plugin
 - <ph type="x-smartling-placeholder"></ph> java_runtime
 - <ph type="x-smartling-placeholder"></ph> 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)
构建 Java 归档文件(“jar 文件”)以及与该规则同名的封装容器 Shell 脚本。 封装容器 Shell 脚本使用的类路径包括每个 这个二进制文件所依赖的库
  封装容器脚本接受多个唯一的标志。请参阅
  //src/main/java/com/google/devtools/build/lib/bazel/rules/java/java_stub_template.txt
  获取封装容器接受的可配置标志和环境变量的列表。
隐式输出目标
name.jar:Java 归档,包含类文件和其他 与二进制文件的直接依赖项相对应的资源。name-src.jar:包含来源(“来源”)的归档 jar”)。name_deploy.jar:适合部署的 Java 归档(只有 创建)。正在为您的规则创建
<name>_deploy.jar目标 可创建一个独立的 jar 文件,该文件具有java -jar命令或使用封装容器脚本的--singlejar选项。最好使用封装容器脚本,而不是java -jar,因为它 还会传递 JVM 标志和选项 来加载原生库部署 jar 包含由类加载器找到的所有类, 从头到尾搜索二进制文件的封装容器脚本中的类路径。它还 包含依赖项所需的原生库。这些图片会自动加载 写入 JVM。
如果您的目标指定了启动器 属性,那么 _deploy.jar 将不再是普通的 JAR 文件 原生二进制文件。该文件将包含启动器以及 所有规则都链接到一个静态二进制文件实际 jar 文件的字节数为 附加到该原生二进制文件,从而创建一个包含 可执行文件和 Java 代码您可以直接执行生成的 jar 文件 就像执行任何原生二进制文件一样。
name_deploy-src.jar:包含来源的归档 收集自目标的传递性闭包。这些类将与deploy.jar(除非 jar 没有匹配的源 jar)。
  未满足以下条件的 java_binary 规则中,不允许使用 deps 属性
  srcs;这样的规则需要
  main_class,提供方
  runtime_deps。
以下代码段展示了一种常见错误:
java_binary(
    name = "DontDoThis",
    srcs = [
        ...,
        "GeneratedJavaFile.java",  # a generated .java file
    ],
    deps = [":generating_rule",],  # rule that generates that file
)
请改为执行以下操作:
java_binary(
    name = "DoThisInstead",
    srcs = [
        ...,
        ":generating_rule",
    ],
)
参数
| 属性 | |
|---|---|
name | 
        
           
 此目标的唯一名称。 最好使用源文件的名称,该文件是 应用(去掉扩展名)。例如,如果您的入口点称为 Main.java,那么您的名称可以是 Main。
         | 
      
          deps
         | 
        
                     
 deps 的一般评论:
          由
          大多数构建规则。
         | 
      
          srcs
         | 
        
                     
 
            系统会编译  
            系统会解压缩并编译  
            规则:如果规则(通常为  
            该参数几乎总是必填,除非是
              | 
      
          resources
         | 
        
                     
 
            如果指定了资源,这些资源将与常规资源一起打包到 jar 中,
            编译生成的  资源可以是源文件或生成的文件。  | 
      
          classpath_resources
         | 
        
                     
 
            必须位于 java 树的根目录下的资源列表。该属性的
            只是为了支持要求其资源
            在类路径中找到的正好为   | 
      
          create_executable
         | 
        
                     
 launcher 或 main_class 属性,则设置为 0
          。
         | 
      
          deploy_env
         | 
        
                     
 java_binary 目标的列表,这些目标代表部署
        此二进制文件的环境。
        请在构建将由另一个插件加载的插件时设置此属性
        java_binary。设置此属性可排除以下对象的所有依赖项: 此二进制文件的运行时类路径(和部署 jar) 二进制文件和 deploy_env 中指定的目标。
         | 
      
          deploy_manifest_lines
         | 
        
                     
 META-INF/manifest.mf 文件中的行列表,该文件是为
          *_deploy.jar目标。此属性的内容不是主题
          进行变量替换。
         | 
      
          javacopts
         | 
        
                     
 这些编译器选项会在全局编译器选项之后传递到 javac。  | 
      
          jvm_flags
         | 
        
                     
 Java 二进制文件的封装容器脚本包含类路径定义
          (查找所有相关的 jar)并调用正确的 Java 解释器。
          由封装容器脚本生成的命令行包含
          主类,后跟  请注意,此属性对   | 
      
          launcher
         | 
        
                     
 bin/java 程序。
          目标必须是 cc_binary。符合以下条件的任何 cc_binary:
          实现了
          <ph type="x-smartling-placeholder"></ph>
          Java Invocation API 可指定为该属性的值。
          默认情况下,Bazel 将使用常规的 JDK 启动器(bin/java 或 java.exe)。 相关的  请注意,原生(C++、SWIG、JNI)依赖项的构建方式会有所不同 具体取决于您使用的是 JDK 启动器还是其他启动器: 
 使用除默认 JDK 启动器之外的任何启动器时,格式
            | 
      
          main_class
         | 
        
                     
 main() 方法且要用作入口点的类的名称。
          如果规则使用此选项,则无需 srcs=[...] 列表。
          因此,通过此属性,用户可通过已
          包含一个或多个 main() 方法。
          
            此属性的值是类名称,而不是源文件。该类必须是
            在运行时可用:可以按此规则(来自   | 
      
          plugins
         | 
        
                     
 java_plugin都会执行
          。库还可以从使用
          exported_plugins。资源
          将包含在此规则的 jar 中。
         | 
      
          resource_jars
         | 
        
                     
  | 
      
          resource_strip_prefix
         | 
        
                     
 
            如果指定,则系统会从   | 
      
          runtime_deps
         | 
        
                     
 deps 一样,它们会显示在运行时类路径中,但与
          它们不在编译时类路径中。只在运行时需要的依赖项应为
          此处列出。依赖项分析工具应忽略同时出现在
          runtime_deps和deps。
         | 
      
          stamp
         | 
        
                     
 
 除非其依赖项发生变化,否则带时间戳的二进制文件不会被重新构建。  | 
      
          use_launcher
         | 
        
                     
 如果将该属性设置为 false,
          launcher 属性以及相关的
            | 
      
          use_testrunner
         | 
        
                     
 com.google.testing.junit.runner.BazelTestRunner) 类作为
          Java 程序的主入口点,并提供测试类
          作为 bazel.test_suite 的值提供给测试运行程序
          系统属性。
          您可以使用此属性来覆盖默认值,
          即使用测试运行程序
          java_test 条规则,
          不将其用于 java_binary 规则。不太可能
          您需要执行的操作一种用途是AllTest
          由另一个规则调用的规则(用于设置数据库)
          例如,在运行测试之前)。AllTest
          规则必须声明为 java_binary,但应
          仍然使用测试运行程序作为其主入口点。
          测试运行程序类的名称可以替换为 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)
  此规则允许将预编译的 .jar 文件用作
  适用于java_library和
  java_binary 条规则。
示例
    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",
        ],
    )
参数
| 属性 | |
|---|---|
name | 
        
           
 此目标的唯一名称。  | 
      
          deps
         | 
        
                     
  | 
      
          constraints
         | 
        
                     
  | 
      
          exports
         | 
        
                     
  | 
      
          jars
         | 
        
                     
  | 
      
          neverlink
         | 
        
                     
 tools.jar(对于
        标准 JDK
         | 
      
          proguard_specs
         | 
        
                     
 android_binary 目标中。
        此处包含的文件只能具有幂等规则,即 -dontnote、-dontwarn、
        以及以 -keep 开头的规则。其他选项只能显示在
        android_binary 的 proguard_specs,旨在确保非同义合并。
         | 
      
          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)
此规则会将源代码编译并关联到 .jar 文件中。
隐式输出目标
libname.jar:包含类文件的 Java 归档。libname-src.jar:包含来源(“来源”)的归档 jar”)。
参数
| 属性 | |
|---|---|
name | 
        
           
 此目标的唯一名称。  | 
      
          deps
         | 
        
                     
 deps 的一般评论:
        由
        大多数构建规则。
        
          根据  
          相比之下,  | 
      
          srcs
         | 
        
                     
 
            系统会编译  
            系统会解压缩并编译  
            规则:如果规则(通常为  
            该参数几乎总是必填,除非是
              | 
      
          data
         | 
        
                     
 data 的一般评论:
        由
        大多数构建规则。
        
          构建   | 
      
          resources
         | 
        
                     
 
            如果指定了资源,这些资源将与常规资源一起打包到 jar 中,
            编译生成的  资源可以是源文件或生成的文件。  | 
      
          exported_plugins
         | 
        
                     
 java_plugin 列表(例如,注解)
        处理器)导出到直接依赖于此库的库。
        
          指定的   | 
      
          exports
         | 
        
                     
 
          此处的列出规则会将其提供给父级规则,就好像父级规则
          都取决于这些规则这不适用于常规(未导出的) 
          摘要:如果存在依赖项,则规则 X 可以访问 Y 中的代码XX
          它们之间的路径,以  
          假设 A 依赖于 B,B 依赖于 C。在这种情况下
          C 是 A 的传递依赖项,因此更改 C 的源代码并重建 A 将
          正确重建所有内容。不过,A 无法使用 C 中的类。要允许
          A 必须在其  关闭导出的库适用于所有直接父级规则。稍微 不同的示例:A 依赖于 B,B 依赖于 C 和 D,并且还会导出 C,而不是 D。 现在,A 可以访问 C,但不能访问 D。现在,如果 C 和 D 导出了一些库,C'和 D' A 只能访问 C”而不是“D”。 
          重要提示:导出的规则不是常规依赖项。仍以上一个示例为例
          如果 B 导出 C 并且还想使用 C,则必须在单独的列表中列出
            | 
      
          javacopts
         | 
        
                     
 这些编译器选项会在全局编译器选项之后传递到 javac。  | 
      
          neverlink
         | 
        
                     
 tools.jar
        在标准 JDK 上运行。
        
          请注意, 如果运行时库与编译库不同,则您必须确保它 区别仅在于 JLS 禁止编译器内联的地方(并且必须 JLS 的所有未来版本)。  | 
      
          plugins
         | 
        
                     
 java_plugin都会执行
          。库还可以从使用
          exported_plugins。资源
          将包含在此规则的 jar 中。
         | 
      
          proguard_specs
         | 
        
                     
 android_binary 目标中。
        此处包含的文件只能具有幂等规则,即 -dontnote、-dontwarn、
        以及以 -keep 开头的规则。其他选项只能显示在
        android_binary 的 proguard_specs,旨在确保非同义合并。
         | 
      
          resource_jars
         | 
        
                     
  | 
      
          resource_strip_prefix
         | 
        
                     
 
            如果指定,则系统会从   | 
      
          runtime_deps
         | 
        
                     
 deps 一样,它们会显示在运行时类路径中,但与
          它们不在编译时类路径中。只在运行时需要的依赖项应为
          此处列出。依赖项分析工具应忽略同时出现在
          runtime_deps和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 从 .proto 文件生成 Java 代码。
deps 必须指向 proto_library
 规则。
示例:
java_library(
    name = "lib",
    deps = [":foo"],
)
java_lite_proto_library(
    name = "foo",
    deps = [":bar"],
)
proto_library(
    name = "bar",
)
参数
| 属性 | |
|---|---|
name | 
        
           
 此目标的唯一名称。  | 
      
          deps
         | 
        
                     
 proto_library 的列表
        为其生成 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 从 .proto 文件生成 Java 代码。
deps 必须指向 proto_library
 规则。
示例:
java_library(
    name = "lib",
    deps = [":foo_java_proto"],
)
java_proto_library(
    name = "foo_java_proto",
    deps = [":foo_proto"],
)
proto_library(
    name = "foo_proto",
)
参数
| 属性 | |
|---|---|
name | 
        
           
 此目标的唯一名称。  | 
      
          deps
         | 
        
                     
 proto_library 的列表
        为其生成 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)
java_test() 规则会编译 Java 测试。测试是封装
测试代码。系统会调用测试运行程序的主方法,而不会编译主类。
隐式输出目标
name.jar:Java 归档。name_deploy.jar:适合的 Java 归档 进行部署(仅在明确请求的情况下构建)。请参阅name_deploy.jar的输出 java_binary。
请参阅有关 java_binary() 参数的部分。此规则还 支持所有通用属性 所有测试规则 (*_test)。
示例
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",
    ],
)
参数
| 属性 | |
|---|---|
name | 
        
           
 此目标的唯一名称。  | 
      
          deps
         | 
        
                     
 deps 的一般评论:
          由
          大多数构建规则。
         | 
      
          srcs
         | 
        
                     
 
            系统会编译  
            系统会解压缩并编译  
            规则:如果规则(通常为  
            该参数几乎总是必填,除非是
              | 
      
          resources
         | 
        
                     
 
            如果指定了资源,这些资源将与常规资源一起打包到 jar 中,
            编译生成的  资源可以是源文件或生成的文件。  | 
      
          classpath_resources
         | 
        
                     
 
            必须位于 java 树的根目录下的资源列表。该属性的
            只是为了支持要求其资源
            在类路径中找到的正好为   | 
      
          create_executable
         | 
        
                     
 launcher 或 main_class 属性,则设置为 0
          。
         | 
      
          deploy_manifest_lines
         | 
        
                     
 META-INF/manifest.mf 文件中的行列表,该文件是为
          *_deploy.jar目标。此属性的内容不是主题
          进行变量替换。
         | 
      
          javacopts
         | 
        
                     
 这些编译器选项会在全局编译器选项之后传递到 javac。  | 
      
          jvm_flags
         | 
        
                     
 Java 二进制文件的封装容器脚本包含类路径定义
          (查找所有相关的 jar)并调用正确的 Java 解释器。
          由封装容器脚本生成的命令行包含
          主类,后跟  请注意,此属性对   | 
      
          launcher
         | 
        
                     
 bin/java 程序。
          目标必须是 cc_binary。符合以下条件的任何 cc_binary:
          实现了
          <ph type="x-smartling-placeholder"></ph>
          Java Invocation API 可指定为该属性的值。
          默认情况下,Bazel 将使用常规的 JDK 启动器(bin/java 或 java.exe)。 相关的  请注意,原生(C++、SWIG、JNI)依赖项的构建方式会有所不同 具体取决于您使用的是 JDK 启动器还是其他启动器: 
 使用除默认 JDK 启动器之外的任何启动器时,格式
            | 
      
          main_class
         | 
        
                     
 main() 方法且要用作入口点的类的名称。
          如果规则使用此选项,则无需 srcs=[...] 列表。
          因此,通过此属性,用户可通过已
          包含一个或多个 main() 方法。
          
            此属性的值是类名称,而不是源文件。该类必须是
            在运行时可用:可以按此规则(来自   | 
      
          plugins
         | 
        
                     
 java_plugin都会执行
          。库还可以从使用
          exported_plugins。资源
          将包含在此规则的 jar 中。
         | 
      
          resource_jars
         | 
        
                     
  | 
      
          resource_strip_prefix
         | 
        
                     
 
            如果指定,则系统会从   | 
      
          runtime_deps
         | 
        
                     
 deps 一样,它们会显示在运行时类路径中,但与
          它们不在编译时类路径中。只在运行时需要的依赖项应为
          此处列出。依赖项分析工具应忽略同时出现在
          runtime_deps和deps。
         | 
      
          stamp
         | 
        
                     
 
 除非其依赖项发生变化,否则带时间戳的二进制文件不会被重新构建。  | 
      
          test_class
         | 
        
                     
 
          默认情况下,如果未定义此参数,则系统会使用旧模式,
          而是改用测试参数。设置  
          此属性用于指定要运行的 Java 类的名称
          此测试。很少需要设置此属性。如果省略此参数,
          将使用目标的  
          对于 JUnit3,测试类必须是
           
          此属性允许多条   | 
      
          use_launcher
         | 
        
                     
 如果将该属性设置为 false,
          launcher 属性以及相关的
            | 
      
          use_testrunner
         | 
        
                     
 com.google.testing.junit.runner.BazelTestRunner) 类作为
          Java 程序的主入口点,并提供测试类
          作为 bazel.test_suite 的值提供给测试运行程序
          系统属性。
          您可以使用此属性来覆盖默认值,
          即使用测试运行程序
          java_test 条规则,
          不将其用于 java_binary 规则。不太可能
          您需要执行的操作一种用途是AllTest
          由另一个规则调用的规则(用于设置数据库)
          例如,在运行测试之前)。AllTest
          规则必须声明为 java_binary,但应
          仍然使用测试运行程序作为其主入口点。
          测试运行程序类的名称可以替换为 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)
要应用于一组软件包的配置。
您可以将配置添加到
java_toolchain.javacopts。
示例:
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",
    ]
)
参数
| 属性 | |
|---|---|
name | 
        
           
 此目标的唯一名称。  | 
      
          data
         | 
        
                     
  | 
      
          javacopts
         | 
        
                     
  | 
      
          packages
         | 
        
                     
 package_group 的集合
        应用该配置。
         | 
      
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 为 Bazel 运行的 Java 编译器定义插件。目前,
  只有注解处理器才是受支持的插件类型。java_library 或
  java_binary 规则可以通过 plugins 运行插件,
  属性。java_library 还可以自动将插件导出到
  直接依赖于它
  exported_plugins。
隐式输出目标
libname.jar:Java 归档。
  除了以下差异,参数与 java_library 完全相同:
  添加 processor_class 参数。
参数
| 属性 | |
|---|---|
name | 
        
           
 此目标的唯一名称。  | 
      
          deps
         | 
        
                     
 deps 的一般评论:
        由
        大多数构建规则。
        
          根据  
          相比之下,  | 
      
          srcs
         | 
        
                     
 
            系统会编译  
            系统会解压缩并编译  
            规则:如果规则(通常为  
            该参数几乎总是必填,除非是
              | 
      
          data
         | 
        
                     
 data 的一般评论:
        由
        大多数构建规则。
        
          构建   | 
      
          resources
         | 
        
                     
 
            如果指定了资源,这些资源将与常规资源一起打包到 jar 中,
            编译生成的  资源可以是源文件或生成的文件。  | 
      
          generates_api
         | 
        
                     
 如果规则使用 API 生成注释处理器,则其他规则 其依赖项只有在生成的代码 编译操作安排在生成规则之后。本次 属性指示 Bazel,在以下情况下引入调度约束: --java_header_compile 已启用。 警告:此属性会影响 build 请仅在必要时使用。  | 
      
          javacopts
         | 
        
                     
 这些编译器选项会在全局编译器选项之后传递到 javac。  | 
      
          neverlink
         | 
        
                     
 tools.jar
        在标准 JDK 上运行。
        
          请注意, 如果运行时库与编译库不同,则您必须确保它 区别仅在于 JLS 禁止编译器内联的地方(并且必须 JLS 的所有未来版本)。  | 
      
          output_licenses
         | 
        
                     
 common attributes
        
         | 
      
          plugins
         | 
        
                     
 java_plugin都会执行
          。库还可以从使用
          exported_plugins。资源
          将包含在此规则的 jar 中。
         | 
      
          processor_class
         | 
        
                     
  | 
      
          proguard_specs
         | 
        
                     
 android_binary 目标中。
        此处包含的文件只能具有幂等规则,即 -dontnote、-dontwarn、
        以及以 -keep 开头的规则。其他选项只能显示在
        android_binary 的 proguard_specs,旨在确保非同义合并。
         | 
      
          resource_jars
         | 
        
                     
  | 
      
          resource_strip_prefix
         | 
        
                     
 
            如果指定,则系统会从   | 
      
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)
指定 Java 运行时的配置。
示例:
java_runtime(
    name = "jdk-9-ea+153",
    srcs = glob(["jdk9-ea+153/**"]),
    java_home = "jdk9-ea+153",
)
参数
| 属性 | |
|---|---|
name | 
        
           
 此目标的唯一名称。  | 
      
          srcs
         | 
        
                     
  | 
      
          hermetic_srcs
         | 
        
                     
  | 
      
          java
         | 
        
                     
  | 
      
          java_home
         | 
        
                     
 srcs 和 java 属性必须为空。
         | 
      
          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)
指定 Java 编译器的配置。可以通过 --java_toolchain 参数。通常,除非您希望 微调 Java 编译器。
示例
下面是一个简单的示例:
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",
)
参数
| 属性 | |
|---|---|
name | 
        
           
 此目标的唯一名称。  | 
      
          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
         | 
        
                     
 此工具不支持注解处理。  | 
      
          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
         | 
        
                     
  |