1

我遇到了这个问题。我有一些由 swagger-codegen-cli (swagger 2) 生成的代码,我正在更新以从 swagger-codegen-cli (swagger 3) 生成。
目前,我有一个带有修改后的 pom.mustache 的模板文件夹。

如果我使用 swagger codegen 2 和那个 templateFolder 运行:

java -jar SwaggerCodegen**2**/swagger-codegen-cli.jar generate -i swagger.json -l java -o . -c configFile -t templateFolder

一切正常。

但是,如果我使用 swagger codegen 3 jar 运行相同的命令,

java -jar SwaggerCodegen**3**/swagger-codegen-cli.jar generate -i swagger.json -l java -o . -c configFile -t templateFolder

我得到:

ERROR can't find model.mustache.

它会不断出错,因为它丢失了十几个不同的 .mustache 文件。

现在,我可以通过从完全不同的存储库中获取 Java .mustache 文件来修复这些错误。我去 swagger-codegen-generators,然后将所有 mustache 文件从 swagger-codegen-generators/src/main/resources/handlebars/Java/*.mustache 复制到我的模板文件夹中。

如果我这样做,那么当我跑步时 java -jar SwaggerCodegen**3**/swagger-codegen-cli.jar generate -i swagger.json -l java -o . -c configFile -t templateFolder

-last在我更改为id其中一个小胡子文件后,一切都编译得很好。

但这似乎是一个不可持续的解决方案。

(附带说明:如果我在不带 -t 的情况下运行命令, java -jar SwaggerCodegen**3**/swagger-codegen-cli.jar generate -i swagger.json -l java -o . -c configFile那么一切都编译得很好——但这对我不起作用,因为我需要编辑 pom.mustache 文件)

由此看来,在我看来,swagger codegen 2,如果它没有在 templateFolder 中找到它需要的一些默认模板文件,则会在自身(而不是 swagger-codegen-generators)中搜索那些丢失的 mustache 文件。但是,如果给定一个 templateFolder,swagger codegen 3 将只在该文件夹中查找——这意味着您的客户 templateFolder 必须包含所有相关的 mustache 文件。如果没有给 swagger codegen 3 一个 templateFolder,我认为它不是从它本身而是从 swagger-codegen-generators 中提取丢失的胡子文件。

这是真的?有没有不同的方法让我自动提取所有相关的胡子文件而不从另一个仓库复制?我只想在我的 templateFolder 中有 1 个已编辑的 pom.mustache 文件,并且能够运行所有内容。

4

0 回答 0