По сути, требуется сгенерировать действительные Java8 модели и класс контроллеров с помощью swagger-codegen-maven-plugin .
У меня есть спецификация swagger 2.0, содержащая модельопределения с полями массива, где каждый элемент массива, в свою очередь, содержит свой собственный массив моделей.
Swagger успешно генерирует Java-модели и аннотированный интерфейс, этот интерфейс содержит тело ответа по умолчанию, представляющее пример автоматически сгенерированного ответа JSON для корневой модели и всеэто субмодели.На самом деле, это проблема:
Для каждого поля массива сваггер всегда создает 2 элемента, еще 2 подпункта для каждого поля массива элементов и т. Д., Что приводит к очень длинной строковой константе в Java.Swagger генерирует эту строку без каких-либо проблем, но компилятор Java просто не может ее обработать и падает с ошибкой компиляции: константа слишком длинная .
Я пытался найти способ уменьшитьколичество элементов в массиве модели или вообще отключить генерацию тела.Похоже, что нет конфигурации obviouse для управления этим.
Есть ли способ отключить генерацию тела по умолчанию или любые другие вещи для управления длиной генерируемой строки?
Сгенерированный код не может быть зафиксирован, поэтому нетспособ вручную исправить сгенерированный код и использовать его впоследствии.После завершения работы плагина swagger-codegen требуется получить скомпилированный Java-код.
Существует конфигурация codegen maven, используемая для генерации исходных кодов (протестировано для версий 2.3.1 и 2.4.0):
<plugin>
<groupId>io.swagger</groupId>
<artifactId>swagger-codegen-maven-plugin</artifactId>
<version>2.3.1</version>
<configuration>
<configOptions>
<sourceFolder>java</sourceFolder>
<dateLibrary>java8</dateLibrary>
</configOptions>
<generateSupportingFiles>false</generateSupportingFiles>
<addCompileSourceRoot>false</addCompileSourceRoot>
<generateApiDocumentation>false</generateApiDocumentation>
<generateApiTests>false</generateApiTests>
<generateModelDocumentation>false</generateModelDocumentation>
<generateModelTests>false</generateModelTests>
<ignoreFileOverride>${project.basedir}</ignoreFileOverride>
</configuration>
<executions>
<execution>
<goals>
<goal>generate</goal>
</goals>
</execution>
</executions>
</plugin>