Library that is using Kotlin Symbol Processing (KSP) for processing Extension annotation used by PF4J framework.
Define the PF4J dependency in your pom.xml:
<dependency>
<groupId>org.pf4j</groupId>
<artifactId>pf4j</artifactId>
<version>3.3.1</version>
</dependency>
Define the kotlin-maven-plugin in your pom.xml:
<plugin>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-maven-plugin</artifactId>
<version>2.0.21</version>
<executions>
<execution>
<id>compile</id>
<phase>compile</phase>
<goals>
<goal>compile</goal>
</goals>
</execution>
<execution>
<id>test-compile</id>
<phase>test-compile</phase>
<goals>
<goal>test-compile</goal>
</goals>
</execution>
</executions>
<configuration>
<jvmTarget>17</jvmTarget>
<compilerPlugins>
<compilerPlugin>ksp</compilerPlugin>
</compilerPlugins>
</configuration>
<dependencies>
<dependency>
<groupId>com.dyescape</groupId>
<artifactId>kotlin-maven-symbol-processing</artifactId>
<version>1.6</version>
</dependency>
<dependency>
<artifactId>pf4j-kotlin-symbol-processing</artifactId>
<groupId>care.better.pf4j</groupId>
<version>2.0.21-1.0.1</version>
</dependency>
</dependencies>
</plugin>
Define Gradle plugin portal to provide easy access to both core and community plugins:
pluginManagement {
repositories {
gradlePluginPortal()
}
}
Apply the com.google.devtools.ksp plugin with the specified version and pf4j-kotlin-symbol-processor to the list of dependencies:
plugins {
id("com.google.devtools.ksp") version "2.0.21-1.0.25"
}
dependencies {
implementation("org.pf4j:pf4j:3.3.1")
ksp("care.better.pf4j:pf4j-kotlin-symbol-processing:2.0.21-1.0.1")
}