使用最新版本的 gradle (8.5) 我想在 之前编译 Groovy 代码 Kotlin 代码。这将使我能够使用自上而下的方法“逐步”将整个项目从 Groovy 迁移到 Kotlin。 (即,将一个控制器迁移到 Kotlin,同时底层依赖项保留在 Groovy 中)。 Kotlin gradle 插件似乎更新了任务要求,强制首先进行 Kotlin 编译。
Kotlin 插件希望在
compileJava
之后发生Groovy 插件想要首先执行
compileJava
: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'
}
重现步骤:
将 Groovy 类文件放入
src/main/groovy
src/main/kotlin
为早期 Gradle 版本提供的解决方案不再有效:
文档的基本思想,因此您发布的Gradle 6+:在 kotlin 之前编译 groovy 中的解决方案仍然是一样。 您删除
groovy => java
依赖项并添加
kotlin => groovy
依赖项。链接的答案实际上不起作用,与 Gradle 6 与 Gradle 8 无关。
您的问题是 Kotlin Gradle Plugin
=1.8,如 1.8 中已弃用的classpath
<1.8 vs. > 属性最终出现错误,后来被删除,取而代之的是
libraries
。这里是与您的版本兼容的配置版本,如 Kotlin DSL 片段:
tasks.compileGroovy {
classpath = sourceSets.main.get().compileClasspath
}
tasks.compileKotlin {
libraries.from(sourceSets.main.get().groovy.classesDirectory)
}