【问题标题】:How to compile one Kotlin class before codegeneration task in Gradle如何在 Gradle 中的代码生成任务之前编译一个 Kotlin 类
【发布时间】:2019-07-26 16:21:49
【问题描述】:
我有 gradle 任务,通过 jaxb 完成从 XSD 到 java 的代码生成。但是代码生成需要一个手工注释类(写在 Kotlin 上),放在项目的源目录中。如何在代码生成任务之前编译并放入类路径中只有一个这个文件?
在 gradle 项目中我有这行:
configurations {
jaxb
}
所以在代码生成任务中,我将其作为参数配置.jaxb.asPath
我建议编译的类必须包含在这个类路径中
它必须只编译这个文件,而不是整个项目,因为此时代码生成尚未完成,并且没有创建所需的类。
【问题讨论】:
标签:
gradle
kotlin
compilation
task
【解决方案1】:
听起来您需要手动调用编译器(很棘手),或者只是将该注释放在子项目中,然后dependencies { jaxb project(':handmade-annotations') }
子项目可能需要是 plugins { id `java-library` } + 通常的 Kotlin 设置。
或者,您可以在同一个 repo 中创建一个小的单独项目,构建 jar 并将其版本控制为 libs/handmade-annotations.jar 或其他东西,但我认为在必要时从源代码构建它会更好。