BaseRequest和BaseResponse创建并保存在同一路径中。两者都没有编译时错误
Request json file:
{
"ab" : "cd" ,
"ef" : "gh"
}
Response json file
{
"ij" : "kl" ,
"mn" : "op"
}
请求Java文件已正确生成,但响应抛出错误 详细信息如下:
任务“ fixSuperClass”的执行失败。造成原因: java.io.FileNotFoundException:C:\ build \ src \ main \ java \ ResponseRS.java (该系统找不到指定的文件) 在build_rdh0klp41syuhr824z594wi5 $ _run_closure3 $ _closure4.doCall(C:\ build.gradle:38)处 在org.gradle.api.internal.AbstractTask $ ClosureTaskAction.execute(AbstractTask.java:732) 在org.gradle.api.internal.AbstractTask $ ClosureTaskAction.execute(AbstractTask.java:705) 在org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter $ 1.run(ExecuteActionsTaskExecuter.java:124) ...还有36个Json pojo文件被生成为ResponseR.java(缺少S),其中包含我的所有数据,但“扩展BaseResponse”也丢失
尝试重命名请求和响应。通过删除此行-> contents3 = contents3.replaceAll( 'ResponseRS \\{', 'ResponseRS extends BaseResponse {' )
,尝试不包括基类。
build.gradle :
------------------- Start build.gradle ---------------------------
jsonSchema2Pojo {
source = files("${sourceSets.main.output.resourcesDir}/json")
targetDirectory = file("${project.buildDir}/src/main/java")
targetPackage = 'com.json'
sourceType = 'json'
removeOldOutput = true
}
task fixSuperClass {
doLast {
String contents = new File("${project.buildDir}/src/main/java/json/RequestRQ.java").getText( 'UTF-8' )
contents = contents.replaceAll( 'RequestRQ \\{', 'RequestRQ extends BaseRequest {' )
new File("${project.buildDir}/src/main/java/json/RequestRQ.java").write( contents, 'UTF-8' )
String contents3 = new File("${project.buildDir}/src/main/java/json/ResponseRS.java").getText( 'UTF-8' )
contents3 = contents3.replaceAll( 'ResponseRS \\{', 'ResponseRS extends BaseResponse {' )
new File("${project.buildDir}/src/main/java/json/ResponseRS.java").write( contents3, 'UTF-8' )
}
}
fixSuperClass.dependsOn generateJsonSchema2Pojo
compileJava.dependsOn fixSuperClass
-------------------结束build.gradle ------------------------ ---------
如果我将ResponseRS重命名为ResponseRA或ResponseRS以外的其他任何名称-可以。 但是在我的情况下,名称必须为ResponseRS。 应该使用相应的类正确生成RequestRS和ResponseRS对象。