You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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
}

关键说明

  1. 独立任务实例:每个任务都指定type: JsonSchema2PojoTask,确保它们是互相独立的,各自的配置不会互相覆盖。
  2. 规范命名:用有意义的任务名替代纯数字,既清晰又符合Gradle的最佳实践。
  3. 路径与引号检查:你原来的代码里有两处小错误: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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 10:05:25