Swagger Codegen 3 Пользовательский шаблон Ошибка при генерации кода API - PullRequest
0 голосов
/ 30 марта 2020

Я сталкиваюсь с этой проблемой. У меня есть код, сгенерированный swagger-codegen-cli (swagger 2). Я обновляюсь, чтобы сгенерировать его из swagger-codegen-cli (swagger 3).
В настоящее время у меня есть папка с шаблоном с измененным pom.mustache. .

Если я запускаю с кодексом Swagger 2 и этим templateFolder:

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

все работает нормально.

Но если я выполню ту же команду с кодировкой Swagger 3 банка,

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 из совершенно другого репо. Я go для генераторов swagger-codegen и копирую все файлы усов из генераторов swagger-codegen / src / main / resources / handlebars / Java / *. Mustache и в мой templateFolder.

Если я сделайте это, затем, когда я запускаю 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) для поиска пропавших без вести. файлы усов. Но swagger codegen 3, если ему предоставлен templateFolder, будет выглядеть ТОЛЬКО в этой папке - это означает, что ваш клиентский templateFolder должен содержать все соответствующие файлы усов. Если swagger codegen 3 не получает templateFolder, я думаю, что он извлекает недостающие файлы усов не из себя, а из генераторов swagger-codegen.

Это правда? Есть ли у меня другой способ автоматически загружать все соответствующие файлы усов, не копируя их из другого репо? Я хочу просто иметь 1 отредактированный файл pom.mustache в моем templateFolder и иметь возможность запускать все.

...