编译 swagger-codegen java Petstore sdk 时出错

问题描述

我正在尝试使用 swagger-codegen (3.0.0) 生成一个 java API 我使用的是 swagger-codegen-cli-3.0.24.jar 版本的 codegen jar。 我运行以下命令为示例 petstore 项目生成 SDK:

java -jar swagger-codegen-cli.jar generate -i code/swagger-codegen/modules/swagger-codegen/src/test/resources/3_0_0/petstore.json -l java -o out/pet-java

当我编译生成的sdk项目时:

cd out/pet-java
mvn clean package

我收到以下错误

Compilation failure
[ERROR] out/pet-java/src/main/java/io/swagger/client/model/Pet.java:[87,34] cannot find symbol
[ERROR]   symbol:   method nextObject()
[ERROR]   location: variable jsonReader of type com.google.gson.stream.JsonReader
it is using <gson-version>2.8.1</gson-version> as dependency.

解决方法

最终真正的答案是让 swagger-codegen 修复他们的回归。他们承认这是一个问题。与此同时,我已经针对我的特定情况解决了这个问题。要演示必要的更改类型,请参见下文:

enter image description here

在某些文件中,而不是 nextObject(),可能会调用 next()。然而,解决方案是相同的。

对于差异中的任何混淆深表歉意。显然,我将文件中的原始行在工作替换行下方注释掉了。