Gradle项目已弃用' classesDir'以前的工作方法:
sourceSets {
main {
output.classesDir = "myDir"
}
}
应该用其他东西替换。文档讨论' output.classesDirs'但这是只读属性。
在Gradle 4.x脚本中指定自定义编译输出目录的方法是什么?
答案 0 :(得分:1)
如果你正在使用java,你可以这样做
apply plugin: 'java'
sourceSets {
main {
// Compiled Java classes should use this directory
java.outputDir = file('myDir')
}
}
查看更多:https://docs.gradle.org/current/javadoc/org/gradle/api/tasks/SourceSetOutput.html
答案 1 :(得分:0)
根据Gradle 6.5.1文档,java.outputDir属性已由classesDirectory替换:
Gradle 6.5.1 docs for SourceDirectorySet
但是我认为destinationDirectory属性应该用于读取或修改编译器的输出目录。因此,文档应该说它被destinationDirectory属性而不是classesDirectory属性取代。
可以使用以下两种方法之一来更改编译器输出目录:
sourceSets {
main {
java {
destinationDirectory.set(file("${project.buildDir}/classes/${sourceSets.main.name}/java"))
}
}
}
OR
sourceSets {
main {
java {
destinationDirectory.value(project.getLayout().getBuildDirectory().dir("classes/${sourceSets.main.name}/java"));
}
}
}
我认为第二种选择更好。
要读取特定sourceSet的输出目录,请使用:
project.sourceSets.main.java.destinationDirectory.get()