Параметры компилятора Kotlin
В каждой версии Kotlin включены компиляторы для поддерживаемых целей: JVM, JavaScript и нативные двоичные файлы для поддерживаемых платформ.
Эти компиляторы используются IDE при нажатии кнопки Компилировать или Запустить для вашего проекта Kotlin.
Вы также можете запустить компиляторы Kotlin вручную из командной строки, как описано в руководстве Работа с компилятором командной строки.
Параметры компилятора
Компиляторы Kotlin имеют множество параметров для настройки процесса компиляции. Параметры компилятора для разных целей перечислены на этой странице вместе с описанием каждого из них.
Существует несколько способов установки параметров компилятора и их значений (аргументы компилятора):
В IntelliJ IDEA введите аргументы компилятора в текстовое поле Дополнительные параметры командной строки в Настройки/Предпочтения | Построение, выполнение, развертывание | Компилятор | Компилятор Kotlin.
Если вы используете Gradle, укажите аргументы компилятора в свойстве
kotlinOptionsзадачи компиляции 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-классов. Командные инструменты для компиляции Kotlin в JVM — это kotlinc и kotlinc-jvm. Их также можно использовать для выполнения файлов сценариев Kotlin.
Помимо общих параметров, компилятор Kotlin/JVM имеет следующие параметры.
-classpath путь (-cp путь)
Поиск файлов классов в указанных путях. Элементы пути к классам разделяются системными разделителями путей (; в Windows, : в macOS/Linux). Путь к классам может содержать пути к файлам и каталогам, ZIP- или JAR-файлам.
-d путь
Расположение сгенерированных файлов классов в указанном месте. Место может быть каталогом, ZIP- или JAR-файлом.
-include-runtime
Включение Kotlin-runtime в результирующий JAR-файл. Делает результирующий архив исполняемым в любой Java-среде.
-jdk-home путь
Использование пользовательской домашней директории JDK в пути к классам, если она отличается от значения по умолчанию JAVA_HOME.
-Xjdk-release=версия
Указание целевой версии сгенерированного JVM-байткода. Ограничение API JDK в пути к классам указанной версией Java. Автоматически устанавливает -jvm-target version. Возможные значения: 1.8, 9, 10, ..., 18. Значение по умолчанию — 1.8.
-jvm-target версия
Указание целевой версии сгенерированного JVM-байткода. Возможные значения: 1.8, 9, 10, ..., 18. Значение по умолчанию — 1.8.
-java-parameters
Генерация метаданных для рефлексии Java 1.8 по параметрам методов.
-module-name имя (JVM)
Установка пользовательского имени для сгенерированного .kotlin_module файла.
-no-jdk
Не включать автоматически Java-runtime в путь к классам.
-no-reflect
Не включать автоматически Kotlin-рефлексию (kotlin-reflect.jar) в путь к классам.
-no-stdlib (JVM)
Не включать автоматически Kotlin/JVM-stdlib (kotlin-stdlib.jar) и Kotlin-рефлексию (kotlin-reflect.jar) в путь к классам.
-script-templates имена_классов[,]
Шаблоны определения сценариев. Используйте полные имена классов и разделяйте их запятыми (,).
Параметры компилятора 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-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
Не связывать со stdlib.
-opt
Включить оптимизации компиляции.
-output name (-o name)
Установить имя выходного файла.
-entry name (-e name)
Указать полное имя точки входа.
-produce output (-p output)
Указать тип выходного файла:
programstaticdynamicframeworklibrarybitcode
-repo path (-r path)
Путь поиска библиотек. Дополнительную информацию см. в Последовательности поиска библиотек.
-target target
Установка целевой аппаратной платформы. Чтобы увидеть список доступных платформ, используйте опцию -list-targets.
© 2010–2022 JetBrains s.r.o. and Kotlin Programming Language contributors
Licensed under the Apache License, Version 2.0.
https://kotlinlang.org/docs/compiler-reference.html