我使用gradle,并且我已经使用Java,Groovy和Kotlin继承了一个项目。我试图将项目转换为一种语言,但在此期间我需要获得一个特定的编译顺序:首先是Java,然后是Kotlin,然后是Groovy。
我以为我可以在build.gradle
:
compileJava.dependsOn = compileJava.taskDependencies.values - 'compileKotlin'
compileKotlin.dependsOn compileJava
compileGroovy.dependsOn compileKotlin
classes.dependsOn compileGroovy
compileGroovy.classpath += files(compileKotlin.destinationDir)
根据我在这里阅读的一些内容: https://discuss.gradle.org/t/kotlin-groovy-and-java-compilation/14903/8
但我最终得到了一个循环依赖,如下所示:
* What went wrong:
Circular dependency between the following tasks:
:demo:compileJava
\--- :demo:compileKotlin
\--- :demo:compileJava (*)
如果我读得正确,看起来它告诉我compileJava
取决于compileKotlin
,但我已经明确删除了这种依赖,所以我就是这样不知道发生了什么。