Spec-Zone.ru › Kotlin 1.7

Параметры компилятора 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

В Windows, когда вы передаёте аргументы компилятора, содержащие разделители символов (пробелы, =, ;, ,), заключите эти аргументы в двойные кавычки (").

$ kotlinc.bat hello.kt -include-runtime -d "My Folder\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.

Эффективность этого параметра для каждой дистрибуции JDK не гарантируется.

-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 Definition

  • commonjs — модуль CommonJS

  • amd — модуль Asynchronous Module Definition

  • plain — обычный 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

Добавить указанный префикс к путям в карте исходного кода.

END_OF_DOCUMENT_MARKER

Параметры компилятора 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)

Указать тип выходного файла:

  • program

  • static

  • dynamic

  • framework

  • library

  • bitcode

END_OF_DOCUMENT_MARKER

-repo path (-r path)

Путь поиска библиотек. Дополнительную информацию см. в Последовательности поиска библиотек.

-target target

Установка целевой аппаратной платформы. Чтобы увидеть список доступных платформ, используйте опцию -list-targets.

Последнее изменение: 17 июня 2022
Компилятор Kotlin командной строки Плагин компилятора All-open

© 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

Spec-Zone.ru

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