【问题标题】:Why is gradle creating a "java" directory under build为什么gradle在build下创建一个“java”目录
【发布时间】:2017-08-12 22:13:47
【问题描述】:
我使用 gradle init 创建了一个新的 Gradle 项目。我更改了很少的默认属性。对于较旧的项目,类将转到 [project-dir]/build/classes,但在我的新项目中,使用非常相似的 build.gradle 文件,类将转到 [project-dir]/build/java /类。 buildDir 的属性是 [project-dir]/build。那么 [project-dir]/build/java 来自哪里?我认为这导致我的类加载器出现问题。
【问题讨论】:
标签:
gradle
build.gradle
gradlew
【解决方案1】:
(Nizet 用链接打败了我)
在主要版本的 Gradle 4 中,他们允许自己更改构建目录以支持多种 JVM 语言。它是在发布之前宣布的。
缓存安全的混合 JVM 语言编译在 Gradle 3.5 中,项目
同时使用 Java 和另一种 JVM 语言(如 Groovy 或 Scala)会
使用构建缓存时遇到问题。创建的类文件
由多个编译任务全部放入同一个输出
目录,它确定要为每个缓存的输出集
任务很困难,并且会导致 Gradle 缓存错误的输出
每个编译任务。
Gradle 现在为每种 JVM 语言使用单独的输出目录。
所以你将拥有 /build/java、build/scala 等。