[JAVASpring] Incorrect model classnames but only in lists?
Description
Since our main.yaml was getting oversized way too quickly we decided to split the file up in separate files and $ref them in the main.yaml. However when using the following code
details:
type: array
items:
$ref: './DetailDto.yaml'
The DetailDto is generated correctly but the details list will look for the following class SchemasDetailDtoYaml.java which seems to be the path. When everything was in a single file and we referenced #/components/schemas/DetailDto everything was fine.
Swagger-codegen version
3.0.55, also broken in 3.0.52. Haven't used any other version yet
Swagger declaration file content or url
Main.yaml
DataDto:
$ref: './schemas/DataDto.yaml'
DetailDto:
$ref: './schemas/DetailDto.yaml'
Data.yaml
type: object
properties:
details:
type: array
items:
$ref: './DetailDto.yaml'
Command line used for generation
<plugin> <groupId>io.swagger.codegen.v3</groupId> <artifactId>swagger-codegen-maven-plugin</artifactId> <version>3.0.52</version> <executions> <execution> <goals> <goal>generate</goal> </goals> <configuration> <inputSpec>${project.basedir}/src/main/resources/api/main.yaml</inputSpec> <!-- allows you to generate a list of configuration options, won't generate code if enabled --> <!-- <configHelp>true</configHelp>--> <output>src/main/java</output> <templateDirectory>${project.basedir}/templates</templateDirectory> <language>spring</language> <modelPackage>org.joorz.project.dto.generated</modelPackage> <apiPackage>org.joorz.project.service.generated</apiPackage> <configOptions> <interfaceOnly>true</interfaceOnly> <hideGenerationTimestamp>true</hideGenerationTimestamp> <dateLibrary>java8</dateLibrary> <sourceFolder>/</sourceFolder> </configOptions> </configuration> </execution> </executions> </plugin>
Steps to reproduce
- Create the yaml files like mentioned above
- Execute maven build command
- Get compile errors