Spec-Zone.ru › Kotlin 1.4

Параметры компилятора Kotlin

В каждой версии Kotlin поставляются компиляторы для поддерживаемых платформ: JVM, JavaScript и нативные двоичные файлы для поддерживаемых платформ.

Эти компиляторы используются IDE при нажатии кнопок Компилировать или Запустить для вашего проекта Kotlin.

Вы также можете запускать компиляторы Kotlin вручную из командной строки, как описано в руководстве Работа с компилятором из командной строки.

Параметры компилятора

Компиляторы Kotlin имеют ряд параметров для настройки процесса компиляции. Параметры компилятора для разных платформ перечислены на этой странице вместе с описанием каждого из них.

Существуют несколько способов задать параметры компилятора и их значения (аргументы компилятора):

  • В IntelliJ IDEA введите аргументы компилятора в поле Дополнительные параметры командной строки в Настройки | Сборка, выполнение, развертывание | Компиляторы | Kotlin Compiler
  • Если вы используете 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

Параметры компилятора Kotlin/JVM

Компилятор Kotlin для JVM компилирует Kotlin-исходные файлы в Java-файлы .class. Командные инструменты для компиляции Kotlin в JVM — kotlinc и kotlinc-jvm. Вы также можете использовать их для выполнения файлов Kotlin-скриптов.

Помимо общих параметров, компилятор Kotlin/JVM имеет следующие параметры.

-classpath <path> (-cp <path>)

Поиск файлов .class в указанных путях. Разделяйте элементы пути класса разделителями системного пути (; в Windows, : в macOS/Linux). Путь класса может содержать пути к файлам и каталогам, ZIP- или JAR-файлы.

-d <path>

Разместить сгенерированные файлы .class в указанном месте. Место может быть каталогом, 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. Значение по умолчанию 1.6.

-java-parameters

Генерировать метаданные для рефлексии Java 1.8 на параметрах методов.

-module-name <name>

Установить пользовательское имя сгенерированного файла .kotlin_module.

-no-jdk

Не включать автоматически Java-среду выполнения в путь класса.

-no-reflect

Не включать автоматически Kotlin-рефлексию (kotlin-reflect.jar) в путь класса.

-no-stdlib

Не включать автоматически Kotlin/JVM stdlib (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 Definition
  • commonjs - модуль CommonJS
  • amd - модуль Asynchronous Module Definition
  • plain - обычный модуль JS

Дополнительную информацию о различных типах модулей JS и различиях между ними можно найти в статье здесь.

-no-stdlib

Не включайте автоматически стандартную библиотеку 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)

Указать версию библиотеки.

-list-targets

Отобразить доступные аппаратные целевые платформы.

-manifest <path>

Предоставить файл расширения манифеста.

-module-name <name>

Укажите имя модуля компиляции. Этот параметр также может использоваться для указания префикса имени для объявлений, экспортированных в 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)

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

  • program
  • static
  • dynamic
  • framework
  • library
  • bitcode

-repo <path> (-r <path>)

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

-target <target>

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

© 2010–2020 JetBrains s.r.o. and Kotlin Programming Language contributors
Licensed under the Apache License, Version 2.0.
https://kotlinlang.org/docs/reference/compiler-reference.html

Spec-Zone.ru

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