任务“ fixSuperClass”的执行失败。 > java.io.FileNotFoundException:

时间:2019-08-21 10:37:37

标签: build.gradle

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对象。

0 个答案:

没有答案