Gradle混合源语言集编译顺序

时间:2017-07-29 17:38:02

标签: gradle

我使用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,但我已经明确删除了这种依赖,所以我就是这样不知道发生了什么。

0 个答案:

没有答案