Spec-Zone.ru › Kotlin 1.9

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

KSP — это плагин компилятора Kotlin, и ему необходим компилятор Kotlin. Скачайте и распакуйте их.

#!/bin/bash

# Kotlin compiler
wget https://github.com/JetBrains/kotlin/releases/download/v1.9.0/kotlin-compiler-1.9.0.zip
unzip kotlin-compiler-1.9.0.zip

# KSP
wget https://github.com/google/ksp/releases/download/1.9.0-1.0.11/artifacts.zip
unzip artifacts.zip

Чтобы запустить KSP с kotlinc, передайте опцию -Xplugin в kotlinc.

-Xplugin=/path/to/symbol-processing-cmdline-1.9.0-1.0.11.jar

Это отличается от symbol-processing-1.9.0-1.0.11.jar, которая предназначена для использования с kotlin-compiler-embeddable, когда выполняется запуск с помощью Gradle. Для командной строки kotlinc необходимо symbol-processing-cmdline-1.9.0-1.0.11.jar.

Вам также потребуется API jar-файл.

-Xplugin=/path/to/symbol-processing-api-1.9.0-1.0.11.jar

Смотрите полный пример:

#!/bin/bash

KSP_PLUGIN_ID=com.google.devtools.ksp.symbol-processing
KSP_PLUGIN_OPT=plugin:$KSP_PLUGIN_ID

KSP_PLUGIN_JAR=./com/google/devtools/ksp/symbol-processing-cmdline/1.9.0-1.0.11/symbol-processing-cmdline-1.9.0-1.0.11.jar
KSP_API_JAR=./com/google/devtools/ksp/symbol-processing-api/1.9.0-1.0.11/symbol-processing-api-1.9.0-1.0.11.jar
KOTLINC=./kotlinc/bin/kotlinc

AP=/path/to/your-processor.jar

mkdir out
$KOTLINC \
        -Xplugin=$KSP_PLUGIN_JAR \
        -Xplugin=$KSP_API_JAR \
        -Xallow-no-source-files \
        -P $KSP_PLUGIN_OPT:apclasspath=$AP \
        -P $KSP_PLUGIN_OPT:projectBaseDir=. \
        -P $KSP_PLUGIN_OPT:classOutputDir=./out \
        -P $KSP_PLUGIN_OPT:javaOutputDir=./out \
        -P $KSP_PLUGIN_OPT:kotlinOutputDir=./out \
        -P $KSP_PLUGIN_OPT:resourceOutputDir=./out \
        -P $KSP_PLUGIN_OPT:kspOutputDir=./out \
        -P $KSP_PLUGIN_OPT:cachesDir=./out \
        -P $KSP_PLUGIN_OPT:incremental=false \
        -P $KSP_PLUGIN_OPT:apoption=key1=value1 \
        -P $KSP_PLUGIN_OPT:apoption=key2=value2 \
        $*
Последнее изменение: 07 февраля 2022
KSP с Kotlin Multiplatform Вопросы и ответы по KSP

© 2010–2023 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