Параметры компилятора 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
Включить постепенный режим для компилятора.
В режиме поэтапного внедрения устаревшие элементы API и исправления ошибок для нестабильного кода вступают в силу немедленно, вместо того чтобы проходить через цикл поэтапной миграции. Код, написанный в поэтапном режиме, совместим с предыдущими версиями; однако код, написанный в режиме, отличном от поэтапного, может вызвать ошибки компиляции в поэтапном режиме.
@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 path (-cp path)
Искать файлы классов в указанных путях. Элементы пути класса разделяются системными разделителями путей (; в Windows, : в macOS/Linux). Путь класса может содержать пути к файлам и каталогам, ZIP- или JAR-файлы.
-d path
Разместить сгенерированные файлы классов в указанном расположении. Расположение может быть каталогом, ZIP- или JAR-файлом.
-include-runtime
Включить Kotlin-среду выполнения в результирующий JAR-файл. Делает результирующий архив исполняемым в любой среде с поддержкой Java.
-jdk-home path
Использовать пользовательский домашний каталог JDK для включения в путь класса, если он отличается от стандартного JAVA_HOME.
-jvm-target version
Указать целевую версию сгенерированного байткода JVM. Возможные значения — 1.6 (УСТАРЕЛО), 1.8, 9, 10, 11, 12, 13, 14, 15, 16, и 17. Значение по умолчанию — 1.8.
-java-parameters
Генерировать метаданные для рефлексии Java 1.8 на параметрах методов.
-module-name name (JVM)
Установить пользовательское имя для сгенерированного .kotlin_module файла.
-no-jdk
Не включать автоматически Java-среду выполнения в путь класса.
-no-reflect
Не включать автоматически Kotlin-рефлексию (kotlin-reflect.jar) в путь класса.
-no-stdlib (JVM)
Не включать автоматически Kotlin/JVM-стандартную библиотеку (kotlin-stdlib.jar) и Kotlin-рефлексию (kotlin-reflect.jar) в путь класса.
-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
Не связываться со 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