Параметры компилятора Kotlin
Каждая версия Kotlin включает компиляторы для поддерживаемых целей: JVM, JavaScript и нативные двоичные файлы для поддерживаемых платформ.
Эти компиляторы используются:
В IDE, когда вы нажимаете кнопку Компилировать или Запустить для вашего Kotlin-проекта.
Gradle, когда вы вызываете
gradle buildв консоли или в IDE.Maven, когда вы вызываете
mvn compileилиmvn test-compileв консоли или в IDE.
Вы также можете запустить компиляторы Kotlin вручную из командной строки, как описано в руководстве Работа с компилятором командной строки.
Параметры компилятора
Kotlin-компиляторы имеют ряд параметров для настройки процесса компиляции. Параметры компилятора для разных целей перечислены на этой странице вместе с описанием каждого из них.
Существует несколько способов установить параметры компилятора и их значения (аргументы компилятора):
В IntelliJ IDEA запишите аргументы компилятора в текстовом поле Дополнительные параметры командной строки в Настройки/Предпочтения | Компиляция, выполнение, развертывание | Компилятор | Компилятор Kotlin.
Если вы используете Gradle, укажите аргументы компилятора в свойстве
compilerOptionsзадачи компиляции Kotlin. Подробнее см. в Параметрах компилятора Gradle.Если вы используете Maven, укажите аргументы компилятора в элементе
<configuration>узла плагина Maven. Подробнее см. в Maven.Если вы запускаете компилятор из командной строки, добавьте аргументы компилятора непосредственно в вызов утилиты или запишите их в файл аргументов.
Например:
$ kotlinc hello.kt -include-runtime -d hello.jar
Общие параметры
Следующие параметры являются общими для всех Kotlin-компиляторов.
-version
Отобразить версию компилятора.
-nowarn
Запретить отображение предупреждений компилятора во время компиляции.
-Werror
Преобразовать предупреждения в ошибки компиляции.
-verbose
Включить подробный вывод регистрации, который включает детали процесса компиляции.
-script
Выполнить Kotlin-скрипт. При вызове с этим параметром компилятор выполняет первый Kotlin-скрипт (*.kts) среди переданных аргументов.
-help (-h)
Отобразить информацию об использовании и выйти. Отображаются только стандартные параметры. Чтобы отобразить расширенные параметры, используйте -X.
-X
Отобразить информацию о расширенных параметрах и выйти. Эти параметры в настоящее время нестабильны: их имена и поведение могут быть изменены без предварительного уведомления.
-kotlin-home path
Указать пользовательский путь к Kotlin-компилятору, используемый для поиска библиотек времени выполнения.
-P plugin:pluginId:optionName=value
Передать параметр Kotlin-плагину компилятора. Доступные плагины и их параметры перечислены в разделе Инструменты > Плагины компилятора документации.
-language-version version
Обеспечить обратную совместимость с указанной версией Kotlin.
-api-version version
Разрешить использование только объявлений из указанной версии связанных библиотек Kotlin.
-progressive
Включить постепенный режим для компилятора.
В постепенном режиме устаревшие функции и исправления ошибок для нестабильного кода вступают в силу сразу, вместо прохождения градиентного цикла миграции. Код, написанный в постепенном режиме, обратна совместим; однако, код, написанный в не постепенном режиме, может вызывать ошибки компиляции в постепенном режиме.
@argfile
Прочитать параметры компилятора из данного файла. Такой файл может содержать параметры компилятора со значениями и путями к исходным файлам. Параметры и пути должны быть разделены пробелами. Например:
-include-runtime -d hello.jar hello.kt
Чтобы передать значения, содержащие пробелы, оберните их в одинарные (') или двойные (") кавычки. Если значение содержит знаки кавычек, экранируйте их обратной косой чертой (\).
-include-runtime -d 'My folder'
Вы также можете передать несколько файлов аргументов, например, для разделения параметров компилятора от исходных файлов.
$ kotlinc @compiler.options @classes
Если файлы находятся в местах, отличных от текущего каталога, используйте относительные пути.
$ kotlinc @options/compiler.options hello.kt
-opt-in annotation
Включить использование API, которое требует предварительной отметки с аннотацией требования с заданным полным квалифицированным именем.
Параметры компилятора Kotlin/JVM
Kotlin-компилятор для JVM компилирует Kotlin-исходные файлы в Java-файлы .class. Командные инструменты Kotlin для компиляции Kotlin в JVM — это kotlinc и kotlinc-jvm. Вы также можете использовать их для выполнения Kotlin-скриптов.
В дополнение к общим параметрам, Kotlin/JVM-компилятор имеет параметры, перечисленные ниже.
-classpath path (-cp path)
Поиск файлов .class в указанных путях. Элементы classpath разделяются разделителями системных путей (; в Windows, : в macOS/Linux). Classpath может содержать пути к файлам и каталогам, ZIP- или JAR-файлам.
-d path
Разместить сгенерированные файлы .class в указанном месте. Местоположение может быть каталогом, ZIP- или JAR-файлом.
-include-runtime
Включить Kotlin-среду выполнения в результирующий JAR-файл. Делает результирующий архив исполняемым в любой Java-среде.
-jdk-home path
Использовать пользовательскую домашнюю директорию JDK для включения в classpath, если она отличается от значения по умолчанию JAVA_HOME.
-Xjdk-release=version
Указать целевую версию сгенерированного байткода JVM. Ограничить API JDK в classpath до указанной версии Java. Автоматически устанавливает -jvm-target version. Возможные значения — 1.8, 9, 10, ..., 20. Значение по умолчанию — 1.8.
-jvm-target version
Указать целевую версию сгенерированного байткода JVM. Возможные значения — 1.8, 9, 10, ..., 20. Значение по умолчанию — 1.8.
-java-parameters
Генерировать метаданные для рефлексии Java 1.8 на параметрах методов.
-module-name name (JVM)
Установить пользовательское имя для сгенерированного .kotlin_module файла.
-no-jdk
Не включать автоматически Java-среду выполнения в classpath.
-no-reflect
Не включать автоматически Kotlin-рефлексию (kotlin-reflect.jar) в classpath.
-no-stdlib (JVM)
Не включать автоматически Kotlin/JVM stdlib (kotlin-stdlib.jar) и Kotlin-рефлексию (kotlin-reflect.jar) в classpath.
-script-templates classnames[,]
Шаблоны определения скриптов. Используйте полные имена классов и разделяйте их запятыми (,).
Параметры компилятора Kotlin/JS
Компилятор Kotlin для JS компилирует Kotlin-файлы в JavaScript-код. Командная утилита для компиляции Kotlin в JS — kotlinc-js.
Помимо общих параметров, компилятор Kotlin/JS имеет следующие параметры.
-libraries path
Пути к Kotlin-библиотекам с файлами .meta.js и .kjsm, разделенные системным разделителем путей.
-main {call|noCall}
Определяет, должна ли вызываться функция main при выполнении.
-meta-info
Генерирует файлы .meta.js и .kjsm с метаданными. Используйте этот параметр при создании JS-библиотеки.
-module-kind {umd|commonjs|amd|plain}
Тип генерируемого JS-модуля компилятором:
umd— модуль Universal Module Definitioncommonjs— модуль CommonJSamd— модуль Asynchronous Module Definitionplain— обычный JS-модуль
Для получения дополнительной информации о различных типах JS-модулей и различиях между ними, см. статью здесь.
-no-stdlib (JS)
Не включать стандартную Kotlin/JS-библиотеку в зависимости компиляции автоматически.
-output filepath
Указывает целевой файл для результата компиляции. Значение должно быть путем к файлу .js, включая его имя.
-output-postfix filepath
Добавить содержимое указанного файла в конец выходного файла.
-output-prefix filepath
Добавить содержимое указанного файла в начало выходного файла.
-source-map
Сгенерировать карту исходного кода.
-source-map-base-dirs path
Использовать указанные пути как базовые каталоги. Базовые каталоги используются для вычисления относительных путей в карте исходного кода.
-source-map-embed-sources {always|never|inlining}
Включить файлы исходного кода в карту исходного кода.
-source-map-names-policy {simple-names|fully-qualified-names|no}
Добавить имена переменных и функций, объявленные в коде Kotlin, в карту исходного кода.
| Настройка | Описание | Пример вывода |
|---|---|---|
simple-names |
Добавляются имена переменных и простые имена функций. (По умолчанию) | main |
fully-qualified-names |
Добавляются имена переменных и полные имена функций. | com.example.kjs.playground.main |
no |
Имена переменных и функций не добавляются. | N/A |
-source-map-prefix
Добавить указанный префикс к путям в карте исходного кода.
Параметры компилятора Kotlin/Native
Компилятор Kotlin/Native компилирует Kotlin-файлы в нативные двоичные файлы для поддерживаемых платформ. Командная утилита для компиляции Kotlin/Native — kotlinc-native.
Помимо общих параметров, компилятор Kotlin/Native имеет следующие параметры.
-enable-assertions (-ea)
Включить проверки во время выполнения в сгенерированном коде.
-g
Включить вывод отладочной информации.
-generate-test-runner (-tr)
Создать приложение для запуска юнит-тестов из проекта.
-generate-worker-test-runner (-trw)
Создать приложение для запуска юнит-тестов в потоке-работнике.
-generate-no-exit-test-runner (-trn)
Создать приложение для запуска юнит-тестов без явного выхода процесса.
-include-binary path (-ib path)
Включить внешний двоичный файл в сгенерированный klib-файл.
-library path (-l path)
Связывать с библиотекой. Для получения информации об использовании библиотек в проектах Kotlin/native, см. Kotlin/Native-библиотеки.
-library-version version (-lv version)
Установить версию библиотеки.
-list-targets
Вывести доступные аппаратные целевые платформы.
-manifest path
Указать файл-дополнение манифеста.
-module-name name (Native)
Указать имя модуля компиляции. Этот параметр также можно использовать для указания префикса имени для объявлений, экспортируемых в Objective-C: Как указать пользовательский префикс/имя для Objective-C в моем Kotlin-фреймворке?
-native-library path (-nl path)
Включить нативную библиотеку bitcode.
-no-default-libs
Отключить связывание кода пользователя с стандартными платформами-библиотеками, поставляемыми вместе с компилятором.
-nomain
Предполагается, что точка входа main будет предоставлена внешними библиотеками.
-nopack
Не архивировать библиотеку в klib-файл.
-linker-option
Передать аргумент компоновщику при построении бинарного файла. Это может быть использовано для компоновки с какой-либо нативной библиотекой.
-linker-options args
Передать несколько аргументов компоновщику при построении бинарного файла. Разделяйте аргументы пробелами.
-nostdlib
Не связывать со стандартной библиотекой.
-opt
Включить оптимизации компиляции.
-output name (-o name)
Указать имя выходного файла.
-entry name (-e name)
Указать полное имя точки входа.
-produce output (-p output)
Указать вид выходного файла:
programstaticdynamicframeworklibrarybitcode
-repo path (-r path)
Путь поиска библиотеки. Для получения дополнительной информации, см. последовательность поиска библиотек.
-target target
Указать аппаратную целевую платформу. Для просмотра списка доступных платформ, используйте параметр -list-targets.
© 2010–2023 JetBrains s.r.o. and Kotlin Programming Language contributors
Licensed under the Apache License, Version 2.0.
https://kotlinlang.org/docs/compiler-reference.html