

<!--
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>

          </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>
  </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;)
kotlin_repositories(kotlin_release_version = &quot;1.2.21&quot;)
</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//:reflect</code>.</p>
<h3>Caveats</h3>
<ul>
<li>The compiler is currently not configurable <a href="https://github.com/hsyed/rules_kotlin/issues/3">issue</a>.</li>
<li>The compiler is hardwired to target jdk8 and language and api levels "1.2" <a href="https://github.com/hsyed/rules_kotlin/issues/3">issue</a>.</li>
</ul>

          <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_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.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.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>
<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.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.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.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>


          <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.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>
