Gradle配置多jsonSchema2Pojo任务仅首个生效,如何解决?
解决Gradle中多个jsonSchema2Pojo任务仅第一个生效的问题
你的问题出在没有创建独立的jsonSchema2Pojo任务实例,而是直接在普通任务里修改全局的插件扩展配置,导致后面的配置会覆盖前面的,但只有第一个任务能正确触发执行。加上任务命名用纯数字也不够规范,容易引发潜在问题。
正确的配置方式
jsonSchema2Pojo插件提供了JsonSchema2PojoTask这个任务类型,我们需要基于它创建多个独立的任务,每个任务单独配置源文件路径和目标包:
// 生成员工相关的Java类 task generateEmployeeClasses(type: JsonSchema2PojoTask) { source = files("src/main/resources/1") targetPackage = "com.Test.employee" } // 生成部门相关的Java类 task generateDepartmentClasses(type: JsonSchema2PojoTask) { source = files("src/main/resources/2") targetPackage = "com.Test2.department" } // 可选:创建聚合任务,一键运行所有生成任务 task generateAllJsonClasses { dependsOn generateEmployeeClasses, generateDepartmentClasses }
关键说明
- 独立任务实例:每个任务都指定
type: JsonSchema2PojoTask,确保它们是互相独立的,各自的配置不会互相覆盖。 - 规范命名:用有意义的任务名替代纯数字,既清晰又符合Gradle的最佳实践。
- 路径与引号检查:你原来的代码里有两处小错误:
resource应该是resources(Gradle默认资源目录是src/main/resources),还有中文引号要改成英文引号,这些细节会导致任务执行失败。
额外提示
确保你已经正确引入了jsonSchema2Pojo插件,在build.gradle顶部添加:
plugins { id 'org.jsonschema2pojo' version '1.2.1' // 替换成你实际使用的版本 }
这样配置后,你可以单独执行./gradlew generateEmployeeClasses或./gradlew generateDepartmentClasses生成对应类,或者执行./gradlew generateAllJsonClasses一键生成所有类。
内容的提问来源于stack exchange,提问作者Yohana1
相关产品推荐
相关产品推荐

