在使用gradle的kotlin时,compileKotlincompileJava之前执行。我需要先执行compileJava,然后再执行compileKotlin。我尝试了compileKotlin.dependsOn(compileJava),但它给出了循环依赖项构建失败。

gradle - 如何使compileKotlin取决于Gradle中的compileJava-LMLPHP

我也试过了
compileJava.dependsOn = compileJava.taskDependencies.values - compileKotlin
但是,它仍然在compileKotlin之前执行compileJava

如何在compileJava之前执行compileKotlin

最佳答案

在gradle,Java,Kotlin,Scala和Groovy一起进行的峰值测试中,我遇到了相同的问题-我认识到这不是一个真实的场景!,但是注意到了(默认情况下,即没有任何显式配置)

  • 编译Java依赖于编译Kotlin
  • compileScala取决于编译Java
  • compileGroovy取决于compileJava

  • 这限制了我对构建源代码的顺序的选择:正如您所告知的,Java编译不能在Kotlin编译之前进行,并且相反,Groovy和Scala编译不能在Java编译之前进行(这是我的最初目标) 。

    我的想法是要获得所需结果的最简单方法就是将我的源代码分成四个不同的项目,设置一个多模块项目:这样,我可以将问题从定义任务依赖项中移出来(如所见)我无法控制)来定义模块依赖项(我可以通过计划依赖项管理非常简单地使用依赖项项目的compile project(':my-dependend-on-project')中的build.gradle之类的东西来进行控制)。

    这是一个非常老的问题,所以我想您已经找到了解决方案。无论如何,对于您对此主题的结论,我很感兴趣。

    关于gradle - 如何使compileKotlin取决于Gradle中的compileJava,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48022211/

    10-09 07:38