I tried to use swagger codegen maven plugin to generate the sources for an openapi 3.0 specification:
<plugin>
<groupId>io.swagger</groupId>
<artifactId>swagger-codegen-maven-plugin</artifactId>
<version>3.0.0-rc1</version>
<executions>
<execution>
<goals>
<goal>generate</goal>
</goals>
<configuration>
<inputSpec>${project.basedir}/design/openapi.json</inputSpec>
<language>spring</language>
<configOptions>
<java8>true</java8>
<library>spring-boot</library>
</configOptions>
</configuration>
</execution>
</executions>
</plugin>
But the generation of sources results in an exception:
[ERROR]
java.lang.RuntimeException: Could not generate model 'user'
at io.swagger.codegen.DefaultGenerator.generateModels(DefaultGenerator.java:409)
at io.swagger.codegen.DefaultGenerator.generate(DefaultGenerator.java:728)
at io.swagger.codegen.plugin.CodeGenMojo.execute(CodeGenMojo.java:534)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:207)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:116)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80)
at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:307)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:193)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:106)
at org.apache.maven.cli.MavenCli.execute(MavenCli.java:863)
at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:288)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:199)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:95)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:55)
at java.lang.reflect.Method.invoke(Method.java:507)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)
Caused by: java.util.regex.PatternSyntaxException: Illegal/unsupported escape sequence near index 3
v2\JavaSpring
^
at java.util.regex.Pattern.error(Pattern.java:1966)
at java.util.regex.Pattern.escape(Pattern.java:2482)
at java.util.regex.Pattern.atom(Pattern.java:2209)
at java.util.regex.Pattern.sequence(Pattern.java:2141)
at java.util.regex.Pattern.expr(Pattern.java:2007)
at java.util.regex.Pattern.compile(Pattern.java:1707)
at java.util.regex.Pattern.<init>(Pattern.java:1362)
at java.util.regex.Pattern.compile(Pattern.java:1039)
at java.lang.String.replaceFirst(String.java:1939)
at io.swagger.codegen.DefaultGenerator.getHandlebars(DefaultGenerator.java:1014)
at io.swagger.codegen.DefaultGenerator.processTemplateToFile(DefaultGenerator.java:744)
at io.swagger.codegen.DefaultGenerator.generateModels(DefaultGenerator.java:396)
... 24 more
Swagger-codegen version
swagger-codegen-maven-plugin, 3.0.0-rc1
Swagger declaration file content or url{ "openapi": "3.0.1", "info": { "title": "API.", "description": "The backend API.", "contact": { "name": "My Team", "url": "http://my/teamsite", "email": "My@Team.com" }, "version": "1.0.0" }, "servers": [ { "url": "http://localhost:8080/api/v1", "description": "Local system" } ], "paths": { "/user": { "get": { "description": "Returns the current user.", "tags": [ "User" ], "security": [ { "basicAuthentication": [] } ], "responses": { "200": { "description": "The user information", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/user" } } } } } } } }, "components": { "schemas": { "user": { "description": "An user.", "type": "object", "required": [ "userName" ], "properties": { "userName": { "description": "The name of the user.", "type": "string" }, "displayName": { "description": "An alternative name of the user to display.", "type": "string" } } } }, "securitySchemes": { "basicAuthentication": { "type": "http", "scheme": "basic" } } } }Command line used for generation
Used within maven.
Steps to reproduceCreate a spring boot maven project and add the plugin and swagger file to generate the source.
Related issues/PRsIssue similar to #7509 . Seems not to be closed.
Suggest a fix/enhancementCorrect the regex.
sgrillon14, yeikel and leodev87
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4