kotlin
import com.squareup.kotlinpoet.*
import com.squareup.kotlinpoet.ParameterizedTypeName.Companion.parameterizedBy
fun main() {
val file = FileSpec.builder("com.example", "HelloWorld")
val className = ClassName("com.example", "HelloWorld")
val classBuilder = TypeSpec.classBuilder(className.simpleName)
val functionName = "hello"
val functionBuilder = FunSpec.builder(functionName)
.addModifiers(KModifier.PUBLIC)
.returns(Unit::class)
.addStatement("println(\"Hello, KotlinPoet!\")")
classBuilder.addFunction(functionBuilder.build())
file.addType(classBuilder.build())
file.build().writeTo(System.out)
}
kotlin
kotlin
kotlin
groovy
id "com.google.devtools.ksp" version "1.7.0-1.0.0-alpha05" // Kotlin Symbol Processing(KSP)
<build>
<plugins>
<plugin>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-maven-plugin</artifactId>
<executions>
<execution>
<id>compile</id>
<goals>
<goal>compile</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>com.squareup.ksp</groupId>
<artifactId>ksp-maven-plugin</artifactId>
<executions>
<execution>
<id>ksp</id>
<goals>
<goal>ksp</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>