0

我目前正在使用 yml 使用 swagger codegen 来生成我的模型但是我有一个字段,List<Object>即需要具有@JacksonXmlElementWrapper(useWrapping = false). 我可以看到@JacksonXmlElementWrapperinPOJO.mustache但不是 in model.mustache。有谁知道要在 yaml 文件或其他任何地方添加什么,以便使用该注释生成该字段?谢谢。我正在使用带有 gradle 的 spring-java 语言。我需要在构建期间生成它。所以最小的变化是首选。

4

1 回答 1

1

根据他们 git 上的自述文件,Swagger Codegen 提到了这样做的方法:

https://github.com/swagger-api/swagger-codegen/blob/master/README.md

因为您使用的是gradle:

我们可以使用自定义模板进行代码生成,如下所示:

// build.gradle
swaggerSources {
  inputFile = file('{name of your file}.yaml')
  xyz {
    language = 'spring'
    // template directory path
    templateDir = file('templates/{name of your custom directory}')
  }
}

在里面templates/{name of your custom directory},您可以存储您的自定义 mustache 文件,就像您的情况一样,您所要做的就是从git下载所需的 spring 模板(例如,此链接用于 pojo.mustache)并添加所需的模板更改,以及项目和库文件夹。运行 gradle build 它应该生成。

然而,有一个更简单的解决方法,您可以使用自己的 pojo 类并将其添加到您现有config.json的中,并在您的 yaml 文件中删除该模型的早期条目(当然):

  "importMappings" : {
      "{replace with className}": "{replace with packageName}.{replace with className}"
  }

希望这可以帮助。

于 2018-11-30T08:42:06.087 回答