

<!--
Documentation generated by Skydoc
-->
<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width initial-scale=1" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge">

    <title>Kotlin Rules</title>

    <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,400,500,600,700" type="text/css">
    <link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons">
    <link rel="stylesheet" href="https://code.getmdl.io/1.1.1/material.green-light_blue.min.css">
    <script defer src="https://code.getmdl.io/1.1.1/material.min.js"></script>
    <link rel="stylesheet" href="https://bazelbuild.github.io/rules_kotlin/main.css">
  </head>
  <body>
    <div class="mdl-layout mdl-js-layout mdl-layout--fixed-drawer
      mdl-layout--fixed-header">
      <header class="mdl-layout__header">
        <div class="mdl-layout__header-row">
          <span class="mdl-layout-title">Kotlin Rules</span>
        </div>
      </header>
      <div class="mdl-layout__drawer">
        <span class="mdl-layout-title">Bazel</span>
        <nav class="drawer-nav">
          <ul class="drawer-nav">
            
<li><a href="https://bazelbuild.github.io/rules_kotlin/index.html">Overview</a></li>
<li>
  <a href="https://bazelbuild.github.io/rules_kotlin/kotlin/kotlin.html">Kotlin Rules</a>
  <ul>
    <li><a href="https://bazelbuild.github.io/rules_kotlin/kotlin/kotlin.html#overview">Overview</a></li>
    <li>
      <a href="https://bazelbuild.github.io/rules_kotlin/kotlin/kotlin.html#kt_jvm_binary">
        kt_jvm_binary
      </a>
    </li>
    <li>
      <a href="https://bazelbuild.github.io/rules_kotlin/kotlin/kotlin.html#kt_jvm_import">
        kt_jvm_import
      </a>
    </li>
    <li>
      <a href="https://bazelbuild.github.io/rules_kotlin/kotlin/kotlin.html#kt_jvm_library">
        kt_jvm_library
      </a>
    </li>
    <li>
      <a href="https://bazelbuild.github.io/rules_kotlin/kotlin/kotlin.html#kt_jvm_test">
        kt_jvm_test
      </a>
    </li>
  </ul>
</li>
<li>
  <a href="https://bazelbuild.github.io/rules_kotlin/kotlin/toolchains.html">toolchains Rules</a>
  <ul>
    <li>
      <a href="https://bazelbuild.github.io/rules_kotlin/kotlin/toolchains.html#kt_toolchain">
        kt_toolchain
      </a>
    </li>
  </ul>
</li>

          </ul>
        </nav>
      </div>

      <main class="mdl-layout__content">
        <div class="page-content">
          <h1>Kotlin Rules</h1>

<nav class="toc">
  <h2><a href="#overview">Overview</a></h2>
  <h2>Rules</h2>
  <ul>
    <li><a href="#kt_jvm_binary">kt_jvm_binary</a></li>
    <li><a href="#kt_jvm_import">kt_jvm_import</a></li>
    <li><a href="#kt_jvm_library">kt_jvm_library</a></li>
    <li><a href="#kt_jvm_test">kt_jvm_test</a></li>
  </ul>
  <h2>Macros</h2>
  <ul>
    <li><a href="#kotlin_repositories">kotlin_repositories</a></li>
    <li><a href="#kt_register_toolchains">kt_register_toolchains</a></li>
  </ul>
</nav>
          <hr>
          <h2 id="overview">Overview</h2>
          <h3>Setup</h3>
<p>Add the following snippet to your <code>WORKSPACE</code> file:</p>
<pre><code class="lang-bzl">git_repository(
    name = &quot;io_bazel_rules_kotlin&quot;,
    remote = &quot;https://github.com/bazelbuild/rules_kotlin.git&quot;,
    commit = &quot;&lt;COMMIT_HASH&gt;&quot;,
)
load(&quot;@io_bazel_rules_kotlin//kotlin:kotlin.bzl&quot;, &quot;kotlin_repositories&quot;, &quot;kt_register_toolchains&quot;)
kotlin_repositories(kotlin_release_version = &quot;1.2.21&quot;)
kt_register_toolchains()
</code></pre>
<p>To enable persistent worker support, add the following to the appropriate <code>bazelrc</code> file:</p>
<pre><code>build --strategy=KotlinCompile=worker
test --strategy=KotlinCompile=worker
</code></pre>
<h3>Standard Libraries</h3>
<p>The Kotlin libraries that are bundled in a kotlin release should be used with the rules, the mandatory standard libraries are added implicetly. After enabling
the repository the following Kotlin Libraries are also made available from the workspace <code>com_github_jetbrains_kotlin</code>:</p>
<ul>
<li><code>kotlin-test</code>,</li>
<li><code>kotlin-reflect</code>.</li>
</ul>
<p>So if you needed to add reflect as a dep use the following label <code>@com_github_jetbrains_kotlin//:kotlin-reflect</code>.</p>
<h3>Mixed Mode compilation</h3>
<p>The JVM rules can compile both Java and Kotlin sources. The Java compiler wrapper is not optimized or persistent and does not have the features found in the
native java rules. This mode is usefull for migrating a package to Kotlin over time.</p>
<h3>Annotation Processing</h3>
<p>Annotation processing works just as it does in Java, plugins are declared via a <a href="https://docs.bazel.build/versions/master/be/java.html#java_plugin"><code>java_plugin</code></a>
and may also be inherited from a <code>java_library</code> via the <code>exported_plugins</code> attribute. Annotation work in mixed-mode compilation and the Kotlin compiler take
care of processing both aspects.</p>
<p>An example which can be found under <code>//examples/dagger</code>:</p>
<pre><code class="lang-bzl">java_plugin(
    name = &quot;dagger_plugin&quot;,
    deps = [
        &quot;@dagger_compiler//jar&quot;,
        &quot;@guava//jar&quot;,
        &quot;@dagger_producers//jar&quot;,
        &quot;@dagger//jar&quot;,
        &quot;@javax_inject//jar&quot;
    ],
    processor_class = &quot;dagger.internal.codegen.ComponentProcessor&quot;
)

java_library(
    name = &quot;dagger_lib&quot;,
    exports = [
        &quot;@javax_inject//jar&quot;,
        &quot;@dagger//jar&quot;,
    ],
    exported_plugins = [&quot;dagger_plugin&quot;]
)

kt_jvm_binary(
    name = &quot;dagger&quot;,
    srcs = glob([&quot;src/**&quot;]),
    main_class = &quot;coffee.CoffeeApp&quot;,
    deps = [&quot;:dagger_lib&quot;],
)
</code></pre>

          <hr>

          <h2 id="kotlin_repositories">kotlin_repositories</h2>

          <pre>kotlin_repositories(<a href="#kotlin_repositories.kotlin_release_version">kotlin_release_version</a>)</pre>

          <p>Call this in the WORKSPACE file to setup the Kotlin rules.</p>


          <h3 id="kotlin_repositories_args">Attributes</h3>

<table class="params-table">
  <colgroup>
    <col class="col-param" />
    <col class="col-description" />
  </colgroup>
  <tbody>
    <tr id="kotlin_repositories.kotlin_release_version">
      <td><code>kotlin_release_version</code></td>
      <td>
        <p><code>Unknown; Optional</code></p>
        <p>The kotlin compiler release version. If this is not set the latest release version is
chosen by default.</p>
      </td>
    </tr>
  </tbody>
</table>
          <hr>

          <h2 id="kt_register_toolchains">kt_register_toolchains</h2>

          <pre>kt_register_toolchains()</pre>

          <p>register all default toolchains</p>


          <hr>

          <h2 id="kt_jvm_binary">kt_jvm_binary</h2>

          <pre>kt_jvm_binary(<a href="#kt_jvm_binary.name">name</a>, <a href="#kt_jvm_binary.deps">deps</a>, <a href="#kt_jvm_binary.data">data</a>, <a href="#kt_jvm_binary.resources">resources</a>, <a href="#kt_jvm_binary.srcs">srcs</a>, <a href="#kt_jvm_binary.jvm_flags">jvm_flags</a>, <a href="#kt_jvm_binary.main_class">main_class</a>, <a href="#kt_jvm_binary.module_name">module_name</a>, <a href="#kt_jvm_binary.plugins">plugins</a>, <a href="#kt_jvm_binary.resource_jars">resource_jars</a>, <a href="#kt_jvm_binary.resource_strip_prefix">resource_strip_prefix</a>, <a href="#kt_jvm_binary.runtime_deps">runtime_deps</a>)</pre>

          <p>Builds a Java archive ("jar file"), plus a wrapper shell script with the same name as the rule. The wrapper shell script uses a classpath that includes,
among other things, a jar file for each library on which the binary depends.</p>
<p><strong>Note:</strong> This rule does not have all of the features found in <a href="https://docs.bazel.build/versions/master/be/java.html#java_binary"><code>java_binary</code></a>. It is
appropriate for building workspace utilities. <code>java_binary</code> should be preferred for release artefacts.</p>


          <h3 id="kt_jvm_binary_args">Attributes</h3>

<table class="params-table">
  <colgroup>
    <col class="col-param" />
    <col class="col-description" />
  </colgroup>
  <tbody>
    <tr id="kt_jvm_binary.name">
      <td><code>name</code></td>
      <td>
        <p><code><a href="https://bazel.build/docs/build-ref.html#name">Name</a>; Required</code></p>
        <p>A unique name for this rule.</p>
      </td>
    </tr>
    <tr id="kt_jvm_binary.deps">
      <td><code>deps</code></td>
      <td>
        <p><code>List of <a href="https://bazel.build/docs/build-ref.html#labels">labels</a>; Optional; Default is []</code></p>
        <p>A list of dependencies of this rule.See general comments about <code>deps</code> at <a href="https://docs.bazel.build/versions/master/be/common-definitions.html#common-attributes">Attributes common to all build rules</a>.</p>
      </td>
    </tr>
    <tr id="kt_jvm_binary.data">
      <td><code>data</code></td>
      <td>
        <p><code>List of <a href="https://bazel.build/docs/build-ref.html#labels">labels</a>; Optional; Default is []</code></p>
        <p>The list of files needed by this rule at runtime. See general comments about <code>data</code> at <a href="https://docs.bazel.build/versions/master/be/common-definitions.html#common-attributes">Attributes common to all build rules</a>.</p>
      </td>
    </tr>
    <tr id="kt_jvm_binary.resources">
      <td><code>resources</code></td>
      <td>
        <p><code>List of <a href="https://bazel.build/docs/build-ref.html#labels">labels</a>; Optional; Default is []</code></p>
        <p>A list of data files to include in a Java jar.</p>
      </td>
    </tr>
    <tr id="kt_jvm_binary.srcs">
      <td><code>srcs</code></td>
      <td>
        <p><code>List of <a href="https://bazel.build/docs/build-ref.html#labels">labels</a>; Optional; Default is []</code></p>
        <p>The list of source files that are processed to create the target, this can contain both Java and Kotlin files. Java analysis occurs first so Kotlin
classes may depend on Java classes in the same compilation unit.</p>
      </td>
    </tr>
    <tr id="kt_jvm_binary.jvm_flags">
      <td><code>jvm_flags</code></td>
      <td>
        <p><code>List of strings; Optional; Default is []</code></p>
        <p>A list of flags to embed in the wrapper script generated for running this binary. Note: does not yet support make variable substitution.</p>
      </td>
    </tr>
    <tr id="kt_jvm_binary.main_class">
      <td><code>main_class</code></td>
      <td>
        <p><code>String; Required</code></p>
        <p>Name of class with main() method to use as entry point.</p>
      </td>
    </tr>
    <tr id="kt_jvm_binary.module_name">
      <td><code>module_name</code></td>
      <td>
        <p><code>String; Optional; Default is ''</code></p>
        <p>The name of the module, if not provided the module name is derived from the label. --e.g., <code>//some/package/path:label_name</code> is translated to
<code>some_package_path-label_name</code>.</p>
      </td>
    </tr>
    <tr id="kt_jvm_binary.plugins">
      <td><code>plugins</code></td>
      <td>
        <p><code>List of <a href="https://bazel.build/docs/build-ref.html#labels">labels</a>; Optional; Default is []</code></p>
        
      </td>
    </tr>
    <tr id="kt_jvm_binary.resource_jars">
      <td><code>resource_jars</code></td>
      <td>
        <p><code>List of <a href="https://bazel.build/docs/build-ref.html#labels">labels</a>; Optional; Default is []</code></p>
        <p>Set of archives containing Java resources. If specified, the contents of these jars are merged into the output jar.</p>
      </td>
    </tr>
    <tr id="kt_jvm_binary.resource_strip_prefix">
      <td><code>resource_strip_prefix</code></td>
      <td>
        <p><code>String; Optional; Default is ''</code></p>
        <p>The path prefix to strip from Java resources, files residing under common prefix such as <code>src/main/resources</code> or <code>src/test/resources</code>
will have stripping applied by convention.</p>
      </td>
    </tr>
    <tr id="kt_jvm_binary.runtime_deps">
      <td><code>runtime_deps</code></td>
      <td>
        <p><code>List of <a href="https://bazel.build/docs/build-ref.html#labels">labels</a>; Optional; Default is []</code></p>
        <p>Libraries to make available to the final binary or test at runtime only. Like ordinary deps, these will appear on the runtime classpath, but
unlike them, not on the compile-time classpath.</p>
      </td>
    </tr>
  </tbody>
</table>
          <hr>

          <h2 id="kt_jvm_import">kt_jvm_import</h2>

          <pre>kt_jvm_import(<a href="#kt_jvm_import.name">name</a>, <a href="#kt_jvm_import.jars">jars</a>, <a href="#kt_jvm_import.srcjar">srcjar</a>)</pre>

          <p>(experimental) Import Kotlin jars.</p>
<p><strong>Status:</strong> This rule is not a counterpart to <code>java_import</code>. The current purpose for this rule is to import a kotlin jar without creating ijars. It will
eventually <a href="https://github.com/bazelbuild/rules_kotlin/issues/4">be replaced</a> with <code>java_import</code>. If there is a need for expanding this rule we can instead
create a utility macro that delegates to this.</p>
<h2>examples</h2>
<pre><code class="lang-bzl"># Import a collection of class jars and source jars from filegroup labels.
kt_jvm_import(
    name = &quot;kodein&quot;,
    jars = [
        &quot;@com_github_salomonbrys_kodein_kodein//jar:file&quot;,
        &quot;@com_github_salomonbrys_kodein_kodein_core//jar:file&quot;
    ]
)

# Import a single kotlin jar.
kt_jvm_import(
    name = &quot;kotlin-runtime&quot;,
    jars = [&quot;lib/kotlin-runtime.jar&quot;],
    srcjar = &quot;lib/kotlin-runtime-sources.jar&quot;
)
</code></pre>


          <h3 id="kt_jvm_import_args">Attributes</h3>

<table class="params-table">
  <colgroup>
    <col class="col-param" />
    <col class="col-description" />
  </colgroup>
  <tbody>
    <tr id="kt_jvm_import.name">
      <td><code>name</code></td>
      <td>
        <p><code><a href="https://bazel.build/docs/build-ref.html#name">Name</a>; Required</code></p>
        <p>A unique name for this rule.</p>
      </td>
    </tr>
    <tr id="kt_jvm_import.jars">
      <td><code>jars</code></td>
      <td>
        <p><code>List of <a href="https://bazel.build/docs/build-ref.html#labels">labels</a>; Required</code></p>
        <p>The jars listed here are equavalent to an export attribute. The label should be either to a single class jar, or multiple filegroup labels. When the
labels is a file_provider it should follow the conventions used in repositories generated by the maven_jar rule  --i.e., the rule expects a file_provider
with a single class jar and a single source jar. a source jar is recognized by the suffix <code>-sources.jar</code>.</p>
      </td>
    </tr>
    <tr id="kt_jvm_import.srcjar">
      <td><code>srcjar</code></td>
      <td>
        <p><code><a href="https://bazel.build/docs/build-ref.html#labels">Label</a>; Optional</code></p>
        <p>The sources for the class jar. This should be set when importing a single class jar.</p>
      </td>
    </tr>
  </tbody>
</table>
          <hr>

          <h2 id="kt_jvm_library">kt_jvm_library</h2>

          <pre>kt_jvm_library(<a href="#kt_jvm_library.name">name</a>, <a href="#kt_jvm_library.deps">deps</a>, <a href="#kt_jvm_library.data">data</a>, <a href="#kt_jvm_library.resources">resources</a>, <a href="#kt_jvm_library.srcs">srcs</a>, <a href="#kt_jvm_library.exports">exports</a>, <a href="#kt_jvm_library.module_name">module_name</a>, <a href="#kt_jvm_library.plugins">plugins</a>, <a href="#kt_jvm_library.resource_jars">resource_jars</a>, <a href="#kt_jvm_library.resource_strip_prefix">resource_strip_prefix</a>, <a href="#kt_jvm_library.runtime_deps">runtime_deps</a>)</pre>

          <p>This rule compiles and links Kotlin and Java sources into a .jar file.</p>


          <h3 id="kt_jvm_library_args">Attributes</h3>

<table class="params-table">
  <colgroup>
    <col class="col-param" />
    <col class="col-description" />
  </colgroup>
  <tbody>
    <tr id="kt_jvm_library.name">
      <td><code>name</code></td>
      <td>
        <p><code><a href="https://bazel.build/docs/build-ref.html#name">Name</a>; Required</code></p>
        <p>A unique name for this rule.</p>
      </td>
    </tr>
    <tr id="kt_jvm_library.deps">
      <td><code>deps</code></td>
      <td>
        <p><code>List of <a href="https://bazel.build/docs/build-ref.html#labels">labels</a>; Optional; Default is []</code></p>
        <p>A list of dependencies of this rule.See general comments about <code>deps</code> at <a href="https://docs.bazel.build/versions/master/be/common-definitions.html#common-attributes">Attributes common to all build rules</a>.</p>
      </td>
    </tr>
    <tr id="kt_jvm_library.data">
      <td><code>data</code></td>
      <td>
        <p><code>List of <a href="https://bazel.build/docs/build-ref.html#labels">labels</a>; Optional; Default is []</code></p>
        <p>The list of files needed by this rule at runtime. See general comments about <code>data</code> at <a href="https://docs.bazel.build/versions/master/be/common-definitions.html#common-attributes">Attributes common to all build rules</a>.</p>
      </td>
    </tr>
    <tr id="kt_jvm_library.resources">
      <td><code>resources</code></td>
      <td>
        <p><code>List of <a href="https://bazel.build/docs/build-ref.html#labels">labels</a>; Optional; Default is []</code></p>
        <p>A list of data files to include in a Java jar.</p>
      </td>
    </tr>
    <tr id="kt_jvm_library.srcs">
      <td><code>srcs</code></td>
      <td>
        <p><code>List of <a href="https://bazel.build/docs/build-ref.html#labels">labels</a>; Optional; Default is []</code></p>
        <p>The list of source files that are processed to create the target, this can contain both Java and Kotlin files. Java analysis occurs first so Kotlin
classes may depend on Java classes in the same compilation unit.</p>
      </td>
    </tr>
    <tr id="kt_jvm_library.exports">
      <td><code>exports</code></td>
      <td>
        <p><code>List of <a href="https://bazel.build/docs/build-ref.html#labels">labels</a>; Optional; Default is []</code></p>
        <p>Exported libraries.</p>
<p>Deps listed here will be made available to other rules, as if the parents explicitly depended on these deps.
This is not true for regular (non-exported) deps.</p>
      </td>
    </tr>
    <tr id="kt_jvm_library.module_name">
      <td><code>module_name</code></td>
      <td>
        <p><code>String; Optional; Default is ''</code></p>
        <p>The name of the module, if not provided the module name is derived from the label. --e.g., <code>//some/package/path:label_name</code> is translated to
<code>some_package_path-label_name</code>.</p>
      </td>
    </tr>
    <tr id="kt_jvm_library.plugins">
      <td><code>plugins</code></td>
      <td>
        <p><code>List of <a href="https://bazel.build/docs/build-ref.html#labels">labels</a>; Optional; Default is []</code></p>
        
      </td>
    </tr>
    <tr id="kt_jvm_library.resource_jars">
      <td><code>resource_jars</code></td>
      <td>
        <p><code>List of <a href="https://bazel.build/docs/build-ref.html#labels">labels</a>; Optional; Default is []</code></p>
        <p>Set of archives containing Java resources. If specified, the contents of these jars are merged into the output jar.</p>
      </td>
    </tr>
    <tr id="kt_jvm_library.resource_strip_prefix">
      <td><code>resource_strip_prefix</code></td>
      <td>
        <p><code>String; Optional; Default is ''</code></p>
        <p>The path prefix to strip from Java resources, files residing under common prefix such as <code>src/main/resources</code> or <code>src/test/resources</code>
will have stripping applied by convention.</p>
      </td>
    </tr>
    <tr id="kt_jvm_library.runtime_deps">
      <td><code>runtime_deps</code></td>
      <td>
        <p><code>List of <a href="https://bazel.build/docs/build-ref.html#labels">labels</a>; Optional; Default is []</code></p>
        <p>Libraries to make available to the final binary or test at runtime only. Like ordinary deps, these will appear on the runtime classpath, but
unlike them, not on the compile-time classpath.</p>
      </td>
    </tr>
  </tbody>
</table>
          <hr>

          <h2 id="kt_jvm_test">kt_jvm_test</h2>

          <pre>kt_jvm_test(<a href="#kt_jvm_test.name">name</a>, <a href="#kt_jvm_test.deps">deps</a>, <a href="#kt_jvm_test.data">data</a>, <a href="#kt_jvm_test.resources">resources</a>, <a href="#kt_jvm_test.srcs">srcs</a>, <a href="#kt_jvm_test.jvm_flags">jvm_flags</a>, <a href="#kt_jvm_test.module_name">module_name</a>, <a href="#kt_jvm_test.plugins">plugins</a>, <a href="#kt_jvm_test.resource_jars">resource_jars</a>, <a href="#kt_jvm_test.resource_strip_prefix">resource_strip_prefix</a>, <a href="#kt_jvm_test.runtime_deps">runtime_deps</a>, <a href="#kt_jvm_test.test_class">test_class</a>)</pre>

          <p>Setup a simple kotlin_test.</p>
<p><strong>Notes:</strong></p>
<ul>
<li>The kotlin test library is not added implicitly, it is available with the label <code>@com_github_jetbrains_kotlin//:kotlin-test</code>.</li>
</ul>


          <h3 id="kt_jvm_test_args">Attributes</h3>

<table class="params-table">
  <colgroup>
    <col class="col-param" />
    <col class="col-description" />
  </colgroup>
  <tbody>
    <tr id="kt_jvm_test.name">
      <td><code>name</code></td>
      <td>
        <p><code><a href="https://bazel.build/docs/build-ref.html#name">Name</a>; Required</code></p>
        <p>A unique name for this rule.</p>
      </td>
    </tr>
    <tr id="kt_jvm_test.deps">
      <td><code>deps</code></td>
      <td>
        <p><code>List of <a href="https://bazel.build/docs/build-ref.html#labels">labels</a>; Optional; Default is []</code></p>
        <p>A list of dependencies of this rule.See general comments about <code>deps</code> at <a href="https://docs.bazel.build/versions/master/be/common-definitions.html#common-attributes">Attributes common to all build rules</a>.</p>
      </td>
    </tr>
    <tr id="kt_jvm_test.data">
      <td><code>data</code></td>
      <td>
        <p><code>List of <a href="https://bazel.build/docs/build-ref.html#labels">labels</a>; Optional; Default is []</code></p>
        <p>The list of files needed by this rule at runtime. See general comments about <code>data</code> at <a href="https://docs.bazel.build/versions/master/be/common-definitions.html#common-attributes">Attributes common to all build rules</a>.</p>
      </td>
    </tr>
    <tr id="kt_jvm_test.resources">
      <td><code>resources</code></td>
      <td>
        <p><code>List of <a href="https://bazel.build/docs/build-ref.html#labels">labels</a>; Optional; Default is []</code></p>
        <p>A list of data files to include in a Java jar.</p>
      </td>
    </tr>
    <tr id="kt_jvm_test.srcs">
      <td><code>srcs</code></td>
      <td>
        <p><code>List of <a href="https://bazel.build/docs/build-ref.html#labels">labels</a>; Optional; Default is []</code></p>
        <p>The list of source files that are processed to create the target, this can contain both Java and Kotlin files. Java analysis occurs first so Kotlin
classes may depend on Java classes in the same compilation unit.</p>
      </td>
    </tr>
    <tr id="kt_jvm_test.jvm_flags">
      <td><code>jvm_flags</code></td>
      <td>
        <p><code>List of strings; Optional; Default is []</code></p>
        <p>A list of flags to embed in the wrapper script generated for running this binary. Note: does not yet support make variable substitution.</p>
      </td>
    </tr>
    <tr id="kt_jvm_test.module_name">
      <td><code>module_name</code></td>
      <td>
        <p><code>String; Optional; Default is ''</code></p>
        <p>The name of the module, if not provided the module name is derived from the label. --e.g., <code>//some/package/path:label_name</code> is translated to
<code>some_package_path-label_name</code>.</p>
      </td>
    </tr>
    <tr id="kt_jvm_test.plugins">
      <td><code>plugins</code></td>
      <td>
        <p><code>List of <a href="https://bazel.build/docs/build-ref.html#labels">labels</a>; Optional; Default is []</code></p>
        
      </td>
    </tr>
    <tr id="kt_jvm_test.resource_jars">
      <td><code>resource_jars</code></td>
      <td>
        <p><code>List of <a href="https://bazel.build/docs/build-ref.html#labels">labels</a>; Optional; Default is []</code></p>
        <p>Set of archives containing Java resources. If specified, the contents of these jars are merged into the output jar.</p>
      </td>
    </tr>
    <tr id="kt_jvm_test.resource_strip_prefix">
      <td><code>resource_strip_prefix</code></td>
      <td>
        <p><code>String; Optional; Default is ''</code></p>
        <p>The path prefix to strip from Java resources, files residing under common prefix such as <code>src/main/resources</code> or <code>src/test/resources</code>
will have stripping applied by convention.</p>
      </td>
    </tr>
    <tr id="kt_jvm_test.runtime_deps">
      <td><code>runtime_deps</code></td>
      <td>
        <p><code>List of <a href="https://bazel.build/docs/build-ref.html#labels">labels</a>; Optional; Default is []</code></p>
        <p>Libraries to make available to the final binary or test at runtime only. Like ordinary deps, these will appear on the runtime classpath, but
unlike them, not on the compile-time classpath.</p>
      </td>
    </tr>
    <tr id="kt_jvm_test.test_class">
      <td><code>test_class</code></td>
      <td>
        <p><code>String; Optional; Default is ''</code></p>
        <p>The Java class to be loaded by the test runner.</p>
      </td>
    </tr>
  </tbody>
</table>


        </div>

        <footer class="mdl-mini-footer">
          <div class="mdl-mini-footer__left-section">
            <div class="mdl-logo">Bazel</div>
            <ul class="mdl-mini-footer__link-list">
              <li><a href="https://bazel.build">Home</a></li>
              <li><a href="https://github.com/bazelbuild">GitHub</a></li>
            </ul>
          </div>
        </footer>
      </main>
    </div>
  </body>
</html>
