如何将任务输出添加至SourceSet的srcDir并使其自动在compileGenJava前执行?
Gradle配置:将生成任务输出目录加入SourceSet并指定执行顺序
要实现你需要的效果,只需要两步:把生成任务的输出目录关联到目标SourceSet,同时给编译任务添加依赖确保执行顺序。
完整配置示例
// 如果你还没定义generateSources任务,先补全任务配置(已定义可跳过) task generateSources(type: 你的任务类型) { outputDir = file("${buildDir}/generated-sources/markup2pojo") // 这里添加生成任务的具体逻辑,比如读取模板、生成Java文件等 } // 关联生成任务的输出目录到gen SourceSet sourceSets { gen { java { // 直接绑定任务的输出目录,比硬编码路径更可靠,后续改路径不用手动同步 srcDir generateSources.outputDir } } } // 强制compileGenJava任务在generateSources执行完成后再运行 tasks.compileGenJava.dependsOn generateSources
关键说明
- 用
generateSources.outputDir替代硬编码路径:当你调整生成任务的输出目录时,SourceSet会自动同步,避免维护两套路径配置的麻烦。 - 添加任务依赖:通过
dependsOn明确声明依赖关系,Gradle的任务调度器会自动保证generateSources先执行,再启动compileGenJava编译生成的代码。
内容的提问来源于stack exchange,提问作者AndreasInfo
相关产品推荐
相关产品推荐

