KSPをコマンドラインから実行する
KSPはKotlinコンパイラのプラグインであり、Kotlinコンパイラと一緒に実行する必要があります。これらをダウンロードして展開してください。
bash
#!/bin/bash
# Kotlin compiler
wget https://github.com/JetBrains/kotlin/releases/download/v2.2.0/kotlin-compiler-2.2.0.zip
unzip kotlin-compiler-2.2.0.zip
# KSP
wget https://github.com/google/ksp/releases/download/2.2.0-2.0.2/artifacts.zip
unzip artifacts.zip
kotlinc
でKSPを実行するには、-Xplugin
オプションをkotlinc
に渡します。
-Xplugin=/path/to/symbol-processing-cmdline-2.2.0-2.0.2.jar
これはsymbol-processing-2.2.0-2.0.2.jar
とは異なります。後者はGradleで実行する際にkotlin-compiler-embeddable
と共に使用するように設計されています。コマンドラインのkotlinc
にはsymbol-processing-cmdline-2.2.0-2.0.2.jar
が必要です。
API JARも必要です。
-Xplugin=/path/to/symbol-processing-api-2.2.0-2.0.2.jar
完全な例を参照してください。
bash
#!/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/2.2.0-2.0.2/symbol-processing-cmdline-2.2.0-2.0.2.jar
KSP_API_JAR=./com/google/devtools/ksp/symbol-processing-api/2.2.0-2.0.2/symbol-processing-api-2.2.0-2.0.2.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 \
$*