我使用gradle init创建了一个新的Gradle项目。我改变了很少的默认属性。对于较旧的项目,类将转到[project-dir] / build / classes,但在我的新项目中,使用非常类似的build.gradle文件,类将转到[project-dir] / build / java /类。 buildDir的属性是[project-dir] / build。那么[project-dir] / build / java 来自哪里?我认为这导致了类加载器的问题。
答案 0 :(得分:0)
(Nizet用链接打败了我)
在主要版本Gradle 4中,他们允许自己更改构建目录以支持多种JVM语言。它是在发布之前宣布的。
缓存安全混合JVM语言编译在Gradle 3.5中,项目即可 使用Java和另一种JVM语言(如Groovy或Scala) 使用构建缓存时遇到问题。创建的类文件 通过多个编译任务全部放入相同的输出 目录,它确定了每个缓存的输出集 任务困难,会导致Gradle缓存错误的输出 每个编译任务。
Gradle现在为每种JVM语言使用单独的输出目录。
所以你将拥有/ build / java,build / scala等。