11.2.4 为你的 Maven 项目配置 Kotlin 编译器

原文链接: https://kotlinlang.org/docs/maven-kotlin-compiler.html

11.2.4 为你的 Maven 项目配置 Kotlin 编译器

kotlin-maven-plugin 让你可以为 Maven 项目配置 Kotlin 编译器。你可以指定编译器选项、选择执行策略,并启用增量编译。

指定编译器选项

你可以在 Kotlin Maven 插件节点的 <configuration> 部分,以元素的形式为编译器指定额外的选项和参数:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
<plugin>
    <groupId>org.jetbrains.kotlin</groupId>
    <artifactId>kotlin-maven-plugin</artifactId>
    <version>${kotlin.version}</version>
    <extensions>true</extensions>
    <executions>...</executions>
    <configuration>
        <nowarn>true</nowarn>
        <args>
            <arg>-Xjsr305=strict</arg>
            ...
        </args>
    </configuration>
</plugin>

许多选项也可以通过属性来配置:

1
2
3
4
5
<project>
    <properties>
        <kotlin.compiler.languageVersion>2.4</kotlin.compiler.languageVersion>
    </properties>
</project>

支持以下属性:

JVM 特有的属性

| 名称 | 属性名 | 说明 | 可能取值 | 默认值 |

| nowarn | | 不生成任何警告 | true、false | false | | languageVersion | kotlin.compiler.languageVersion | 控制在编译期间可以使用哪些 Kotlin 语言特性和语法。更多信息请参阅 -language-version。 | “2.0”、“2.1”、“2.2”、“2.3”、“2.4”、“2.5”(实验性) | | | apiVersion | kotlin.compiler.apiVersion | 控制你的代码可以使用哪些 Kotlin API。更多信息请参阅 -api-version。 | “2.0”、“2.1”、“2.2”、“2.3”、“2.4”、“2.5”(实验性) | | | sourceDirs | | 包含待编译源文件的目录 | | 项目的源根目录 | | compilerPlugins | | 启用的编译器插件 | | [] | | pluginOptions | | 编译器插件的选项 | | [] | | args | | 额外的编译器参数 | | [] | | jvmTarget | kotlin.compiler.jvmTarget | 生成字节码的目标 JVM 版本。它只控制输出的字节码版本,并不限制你的代码可以使用哪些 JDK API。 | “1.8”、“9”、“10”、…、“26” | “1.8” | | jdkRelease | kotlin.compiler.jdkRelease | 目标 JVM 版本。它控制字节码版本,并把可用 API 限制为指定的 JDK 版本,从而避免意外使用更新的 API。等价于 Java 的 --release 编译器选项。 | “1.8”、“9”、“10”、…、“26” | | | jdkHome | kotlin.compiler.jdkHome | 把指定位置的自定义 JDK 加入 classpath,而不是使用默认的 JAVA_HOME | | | | jdkToolchain | kotlin.compiler.jdkToolchain | 设置要从工具链使用的 JDK 版本。只影响 Kotlin 编译 | |

选择执行策略

默认情况下,Maven 使用 Kotlin 守护进程的编译器执行策略。要切换到 “in process” 策略,请在 pom.xml 文件中设置以下属性:

1
2
3
<properties>
    <kotlin.compiler.daemon>false</kotlin.compiler.daemon>
</properties>

关于不同策略的更多信息,请参阅编译器执行策略。

启用增量编译

为了让构建更快,你可以通过添加 kotlin.compiler.incremental 属性来启用增量编译:

1
2
3
<properties>
    <kotlin.compiler.incremental>true</kotlin.compiler.incremental>
</properties>

或者,用 -Dkotlin.compiler.incremental=true 选项运行你的构建。

接下来学什么?

打包你的项目