我创建了一个生成一些Java代码的自定义Gradle任务。为了优化执行,此插件使用@InputDirectory和@OutputDirectory注释,因此不必在每次构建时生成代码。
但是,我做希望此任务将生成的代码添加到类路径中。
我目前正在这样做class JaxbTask extends DefaultTask {
@OutputDirectory
File destdir = project.file( "${project.buildDir}/generated-sources/mygen" )
@InputDirectory
File schemaRoot = project.file("${project.projectDir}/src/main/resources/myschema/")
@TaskAction
def main() {
..
project.sourceSets.main.java.srcDirs += destdir
..
}
问题是当生成的代码是最新的时,不执行TaskAction并且源目录没有添加到编译路径。有没有办法确保始终执行源路径的修改?
答案 0 :(得分:0)
任务永远不应该尝试配置构建模型。配置是构建脚本和插件的责任,需要在配置阶段(在任何任务运行之前)发生。