【问题标题】: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 或其他东西,但我认为在必要时从源代码构建它会更好。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-01-12
      • 2016-11-11
      • 2020-07-27
      • 1970-01-01
      • 2015-12-13
      • 2020-07-22
      • 2018-07-08
      • 1970-01-01
      相关资源
      最近更新 更多