You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Gradle 8+项目中如何优先编译Groovy代码再编译Kotlin代码?

Gradle 8.5 优先编译Groovy再编译Kotlin的需求与问题

我在使用Gradle 8.5版本的项目中,希望优先编译Groovy代码,再编译Kotlin代码,以此实现自上而下的方式逐步将整个项目从Groovy迁移至Kotlin(例如迁移一个控制器到Kotlin,而底层依赖仍保留为Groovy)。

但当前Kotlin与Groovy插件的任务依赖逻辑存在冲突:

  • Kotlin Gradle插件要求自身编译任务在compileJava之前执行
  • Groovy插件要求先执行compileJava
    因此执行compileGroovy时会触发compileKotlin,无法实现先编译Groovy的目标。

TaskTree输出

:compileGroovy
\--- :compileJava
     \--- :compileKotlin
          \--- :checkKotlinGradlePluginConfigurationErrors

项目使用的插件配置(build.gradle)

plugins {
    id 'groovy'
    id 'application'
    id 'org.jetbrains.kotlin.jvm' version '2.0.0-Beta2'
    id "com.dorongold.task-tree" version "2.1.1"
    id 'idea'
}

复现步骤

  • 在src/main/groovy目录下放置Groovy类文件(例如Author)
  • 在src/main/kotlin目录下放置依赖该Groovy类的Kotlin类文件(例如Book)

补充说明

针对Gradle旧版本的解决方案已失效,例如修改任务依赖的方式会出现compileKotlin的'classpath'属性未知的错误。

内容的提问来源于stack exchange,提问作者dustmachine

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 02:05:55