Spec-Zone.ru › Kotlin 2

Стратегия выполнения компилятора

Стратегия выполнения компилятора Kotlin определяет, где запускается компилятор Kotlin. Инструменты сборки, такие как Gradle или Maven, настраивают стратегию.

Существует две стратегии выполнения компилятора:

Стратегия

Где запускается компилятор Kotlin

Другие характеристики и примечания

Демон Kotlin

В отдельном процессе демона

Стратегия по умолчанию и самая быстрая в Gradle и Maven. Процесс демона может использоваться совместно различными процессами системы сборки и несколькими параллельными компиляциями.

В процессе

В процессе инструмента сборки

Самая простая стратегия с точки зрения управления памятью, но она обеспечивает меньшую изоляцию от другой логики, выполняющейся в том же процессе, поскольку использует общее состояние, например системные свойства JVM.

Настройка в Gradle

Стратегию выполнения компилятора Kotlin можно задать с помощью одного из следующих свойств:

  • Свойство Gradle kotlin.compiler.execution.strategy.

  • Свойство задачи компиляции compilerExecutionStrategy.

Использование свойства Gradle

Возможные значения свойства kotlin.compiler.execution.strategy:

  • daemon (по умолчанию)

  • in-process

Задайте свойство kotlin.compiler.execution.strategy в файле gradle.properties:

kotlin.compiler.execution.strategy=in-process

Использование свойства задачи компиляции

Свойство задачи compilerExecutionStrategy имеет приоритет над свойством Gradle kotlin.compiler.execution.strategy.

Возможные значения свойства задачи compilerExecutionStrategy:

  • DAEMON (по умолчанию)

  • IN_PROCESS

Задайте свойство задачи compilerExecutionStrategy в скриптах сборки:

import org.jetbrains.kotlin.gradle.tasks.CompileUsingKotlinDaemon
import org.jetbrains.kotlin.gradle.tasks.KotlinCompilerExecutionStrategy

// ...

tasks.withType<CompileUsingKotlinDaemon>().configureEach {
    compilerExecutionStrategy.set(KotlinCompilerExecutionStrategy.IN_PROCESS)
} 
import org.jetbrains.kotlin.gradle.tasks.CompileUsingKotlinDaemon
import org.jetbrains.kotlin.gradle.tasks.KotlinCompilerExecutionStrategy

// ...

tasks.withType(CompileUsingKotlinDaemon)
        .configureEach {
            compilerExecutionStrategy = KotlinCompilerExecutionStrategy.IN_PROCESS
        }

Резервная стратегия

Если не удается установить связь с демоном Kotlin, компилятор переключается на стратегию «В процессе».

При таком переключении Gradle выводит в журнал сборки следующее предупреждение:

Failed to compile with Kotlin daemon: java.lang.RuntimeException: Could not connect to Kotlin compile daemon
[exception stacktrace]
Using fallback strategy: Compile without Kotlin daemon
Try ./gradlew --stop if this issue persists.

Незаметное переключение на резервную стратегию может потреблять много системных ресурсов или приводить к недетерминированным сборкам. Дополнительную информацию см. в этой задаче YouTrack.

Чтобы предотвратить переключение на резервную стратегию, используйте свойство Gradle kotlin.daemon.useFallbackStrategy. Значение по умолчанию — true. Если задать значение false, сборка завершится с ошибкой при проблемах с запуском демона или установлением связи с ним. Укажите это свойство в файле gradle.properties:

kotlin.daemon.useFallbackStrategy=false

В задачах компиляции Kotlin также есть свойство useDaemonFallbackStrategy. Если используются оба свойства, приоритет имеет свойство useDaemonFallbackStrategy.

tasks {
    compileKotlin {
        useDaemonFallbackStrategy.set(false)
    }
}
tasks.named("compileKotlin").configure {
    useDaemonFallbackStrategy = false
}

Если для выполнения компиляции недостаточно памяти, в журналах отображается соответствующее сообщение.

Настройка в Maven

По умолчанию Maven использует стратегию выполнения компилятора с демоном Kotlin. Чтобы переключиться на стратегию «В процессе», задайте следующее свойство в файле pom.xml:

<properties>
    <kotlin.compiler.daemon>false</kotlin.compiler.daemon>
</properties>
16 апреля 2026 г.
Параметры компилятора KotlinПлагины компилятора

© 2010–2026 JetBrains s.r.o. and Kotlin Programming Language contributors
Licensed under the Apache License, Version 2.0.
https://kotlinlang.org/docs/compiler-execution-strategy.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API