Spec-Zone.ru › Kotlin 1.9

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

В 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-файлы .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.

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

-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[,]

Шаблоны определения скриптов. Используйте полные имена классов и разделяйте их запятыми (,).

END_OF_DOCUMENT_MARKER

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

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

  • program

  • static

  • dynamic

  • framework

  • library

  • bitcode

-repo path (-r path)

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

-target target

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

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

© 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

Spec-Zone.ru

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