我已经使用 kapt 编写了一个代码生成器,并在使用 maven 编译 kotlin 的项目中使用它。
我发现在 Kotlin 的编译阶段之后调用了 kapt 生成器,这阻止了我在同一个项目中使用 kotlin 中生成的代码。
但是,如果我在同一个项目中从 Java 中引用生成的类,它就可以正常工作。这是因为 java 编译阶段在 kotlin 的生成阶段之后。
我已经在 maven 配置中的 Kotlin 编译目标之前指定了 kapt 目标(如docs中所述),但它似乎没有什么区别:
<plugin>
<artifactId>kotlin-maven-plugin</artifactId>
<groupId>org.jetbrains.kotlin</groupId>
<version>${kotlin.version}</version>
<executions>
<execution>
<id>kapt</id>
<goals>
<goal>kapt</goal>
</goals>
<configuration>
<sourceDirs>
<sourceDir>src/main/java</sourceDir>
</sourceDirs>
<annotationProcessorPaths>
<annotationProcessorPath>
<groupId>lang.taxi</groupId>
<artifactId>taxi-annotation-processor</artifactId>
<version>${taxi.version}</version>
</annotationProcessorPath>
</annotationProcessorPaths>
</configuration>
</execution>
<execution>
<id>compile</id>
<goals> <goal>compile</goal> </goals>
</execution>
<execution>
<id>test-compile</id>
<goals> <goal>test-compile</goal> </goals>
<configuration>
<sourceDirs>
<sourceDir>${project.basedir}/src/test/kotlin</sourceDir>
<sourceDir>${project.basedir}/src/test/java</sourceDir>
</sourceDirs>
</configuration>
</execution>
</executions>
</plugin>
是否可以配置 Kotlin 以允许我在同一个项目中使用从 Kotlin 生成的代码?