为什么gradle会创建一个" java"正在构建的目录

时间:2017-08-12 22:13:47

标签: gradle build.gradle gradlew

我使用gradle init创建了一个新的Gradle项目。我改变了很少的默认属性。对于较旧的项目,类将转到[project-dir] / build / classes,但在我的新项目中,使用非常类似的build.gradle文件,类将转到[project-dir] / build / java /类。 buildDir的属性是[project-dir] / build。那么[project-dir] / build / java 来自哪里?我认为这导致了类加载器的问题。

1 个答案:

答案 0 :(得分:0)

(Nizet用链接打败了我)

在主要版本Gradle 4中,他们允许自己更改构建目录以支持多种JVM语言。它是在发布之前宣布的。

  

缓存安全混合JVM语言编译在Gradle 3.5中,项目即可   使用Java和另一种JVM语言(如Groovy或Scala)   使用构建缓存时遇到问题。创建的类文件   通过多个编译任务全部放入相同的输出   目录,它确定了每个缓存的输出集   任务困难,会导致Gradle缓存错误的输出   每个编译任务。

     

Gradle现在为每种JVM语言使用单独的输出目录。

所以你将拥有/ build / java,build / scala等。