Параметры компилятора 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 путь
Указать пользовательский путь к компилятору Kotlin, используемый для поиска библиотек времени выполнения.
-P plugin:pluginId:optionName=value
Передать параметр плагину компилятора Kotlin. Доступные плагины и их параметры перечислены в разделе Инструменты > Плагины компилятора документации.
-language-version версия
Обеспечить обратную совместимость с указанной версией Kotlin.
-api-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 аннотация
Включить использование API, которое требует включения с аннотацией требования с указанным полным квалифицированным именем.
Параметры компилятора Kotlin/JVM
Компилятор Kotlin для JVM компилирует файлы исходного кода Kotlin в файлы Java-классов. Командные инструменты для компиляции Kotlin в JVM — это kotlinc и kotlinc-jvm. Вы также можете использовать их для выполнения файлов Kotlin-скриптов.
В дополнение к общим параметрам, компилятор Kotlin/JVM имеет параметры, перечисленные ниже.
-classpath путь (-cp путь)
Искать файлы классов в указанных путях. Разделяйте элементы classpath системными разделителями путей (; в Windows, : в macOS/Linux). Classpath может содержать пути к файлам и каталогам, ZIP- или JAR-файлам.
-d путь
Разместить сгенерированные файлы классов в указанном месте. Местоположение может быть каталогом, ZIP- или JAR-файлом.
-include-runtime
Включить Kotlin-время выполнения в результирующий JAR-файл. Делает результирующий архив исполняемым в любой среде с Java.
-jdk-home путь
Использовать пользовательскую домашнюю директорию JDK для включения в classpath, если она отличается от значения по умолчанию JAVA_HOME.
-Xjdk-release=версия
Указать целевую версию сгенерированного JVM-байткода. Ограничить API JDK в classpath до указанной версии Java. Автоматически устанавливает -jvm-target version. Возможные значения — 1.8, 9, 10, ..., 19. Значение по умолчанию — 1.8.
-jvm-target версия
Указать целевую версию сгенерированного JVM-байткода. Возможные значения — 1.8, 9, 10, ..., 19. Значение по умолчанию — 1.8.
-java-parameters
Генерировать метаданные для Java 1.8 рефлексии на параметры методов.
-module-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-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