Spec-Zone.ru › Kotlin 2

Запуск KSP из командной строки

В большинстве проектов KSP используется через плагин Gradle, который автоматически запускает KSP во время компиляции. KSP можно запускать из командной строки, но обычно это делают только при интеграции с другими системами сборки, разработке процессоров, тестировании или отладке.

Поскольку KSP — это приложение JVM, используйте команду java для запуска KSP из командной строки. Укажите путь к классам и все необходимые аргументы:

java -cp <classpath> <mainclass> <options> <processor>

Аргумент

Описание

<classpath>

Путь к JAR-файлам среды выполнения KSP и их зависимостям.

<mainclass>

Одна из точек входа KSP для конкретной платформы.

<options>

Параметры командной строки для KSP.

<processor>

Путь к JAR-файлу процессора.

Путь к классам

В отличие от плагина Gradle, команда java не разрешает зависимости автоматически. Необходимо указать в пути к классам JAR-файлы среды выполнения KSP и их зависимости.

Скачайте artifacts.zip со страницы выпусков KSP. Архив содержит необходимые JAR-файлы KSP:

  • symbol-processing-aa-2.3.10.jar

  • symbol-processing-common-deps-2.3.10.jar

  • symbol-processing-api-2.3.10.jar

Также необходимо добавить следующие зависимости среды выполнения из Maven Repository:

  • kotlin-stdlib-2.4.20.jar

  • kotlinx-coroutines-core-jvm-1.11.0.jar

Главный класс

Поскольку KSP — это приложение JVM, для его запуска необходимо указать главный класс. Для каждой поддерживаемой платформы KSP предоставляет отдельную точку входа:

Точка входа

Платформы

KSPJvmMain

Kotlin/JVM и Android

KSPJsMain

Kotlin/JS

KSPNativeMain

Целевые платформы Kotlin/Native, например iOS, macOS, Linux и Windows.

KSPCommonMain

Общие компиляции в проектах Kotlin Multiplatform.

При запуске KSP с помощью java укажите полное имя класса. Например:

java -cp <classpath> com.google.devtools.ksp.cmdline.KSPJvmMain <options> <processor>

В следующем примере для запуска KSP для целевой платформы JVM используется KSPJvmMain:

java -cp \
symbol-processing-aa-2.3.10.jar:symbol-processing-common-deps-2.3.10.jar:symbol-processing-api-2.3.10.jar:kotlin-stdlib-2.3.20.jar:kotlinx-coroutines-core-jvm-1.10.2.jar \
com.google.devtools.ksp.cmdline.KSPJvmMain \
-language-version=2.0 \
-api-version=2.0 \
-jvm-target=11 \
-module-name=main \
-source-roots=project_dir/src/kotlin/main \
-project-base-dir=project_dir/ \
-output-base-dir=project_dir/build/ \
-caches-dir=project_dir/build/caches/ \
-class-output-dir=project_dir/build/out/main/classes \
-kotlin-output-dir=project_dir/build/out/main/kotlin/ \
-java-output-dir=project_dir/build/out/main/java/ \
-resource-output-dir=project_dir/build/out/main/res/ \
path/to/processor.jar

Параметры

Для запуска KSP из командной строки необходимы следующие параметры:

Параметр

Описание

-language-version=<version>

Версия языка Kotlin, используемая в проекте.

-api-version=<version>

Версия API Kotlin.

-jvm-target=<version>

Целевая версия JVM.

-module-name=<name>

Имя модуля.

-source-roots=<paths>

Корневые каталоги исходного кода. Чтобы указать несколько каталогов, разделите их двоеточиями.

-project-base-dir=<path>

Корневой каталог проекта.

-output-base-dir=<path>

Базовый каталог для выходных данных KSP.

-caches-dir=<path>

Каталог для кэшей KSP.

-java-output-dir=<path>

Каталог для сгенерированных файлов Java.

-class-output-dir=<path>

Каталог для сгенерированных файлов классов.

-kotlin-output-dir=<path>

Каталог для сгенерированных файлов Kotlin.

-resource-output-dir=<path>

Каталог для сгенерированных ресурсов.

<processor>

Путь к классам процессора.

Другие полезные параметры

  • -libraries=<path>: путь к классам, используемый для разрешения зависимостей, на которые ссылаются исходные файлы. Обычно это путь к классам компиляции модуля.

  • -jdk-home=<path>: домашний каталог JDK. Используйте этот параметр, если процессор разрешает символы Java и ему требуется доступ к стандартной библиотеке Java.

  • -friends=<path>: путь к классам дружественных модулей текущего модуля. Обычно это путь к классам дружественных модулей модуля. Подробнее см. в разделе Дружественные модули.

KSP также поддерживает системное свойство JVM -Dksp.logging, которое задаёт уровень ведения журнала. Допустимые значения: error, warn или warning, info и debug. Значение по умолчанию — warn. Неподдерживаемые значения KSP обрабатывает как warn.

Чтобы просмотреть полный список параметров, выполните следующую команду:

java -cp <classpath> <mainclass> -h
12 августа 2026 г.
KSP с Kotlin MultiplatformЧасто задаваемые вопросы о KSP

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

Spec-Zone.ru

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