Java编译器有一个选项,它允许为生成的java源代码(文档)自定义输出目录。
-s 目录
指定放置生成的源文件的目录。该目录必须已经存在;javac 不会创建它。如果类是包的一部分,编译器会将源文件放在反映包名称的子目录中,并根据需要创建目录。例如,如果指定 -s C:\mysrc 并且该类名为 com.mypackage.MyClass,则源文件将放在 C:\mysrc\com\mypackage\MyClass.java 中。
示例build.gradle
compileJava {
options.compilerArgs << "-s"
options.compilerArgs << "$projectDir/generated/java"
doFirst {
// make sure that directory exists
file(new File(projectDir, "/generated/java")).mkdirs()
}
}
clean.doLast {
// clean-up directory when necessary
file(new File(projectDir, "/generated")).deleteDir()
}
sourceSets {
generated {
java {
srcDir "$projectDir/generated/java"
}
}
}
接下来,此代码片段执行以下操作:
- 创建并指定目录作为生成代码的输出
- 如果调用清理任务,则删除生成的源
- 添加新的源集
更新
使用 gradle apt 插件代替。