![](/img/trans.png)
[英]How to generate client code using springdoc-openapi-maven-plugin and swagger-codegen-maven-plugin?
[英]How to generate client code using with swagger-codegen-plugin (maven)?
我需要在 Eclipse 中使用 swagger-codegen-plugin (for maven) 生成服务器存根代码。 你能帮我怎么做吗? 以及需要什么配置(在 pom.xml 中)。
我找到了这个答案。 您只需要像下面那样更改 pom.xml。
pom.xml。
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
<version.swagger.codegen>2.2.1</version.swagger.codegen>
<yaml.file>${project.basedir}/src/main/resources/Api.yaml</yaml.file>
<generated-sources-path>${project.build.directory}/generated-sources</generated-sources-path>
<generated-sources-java-path>main/java</generated-sources-java-path>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>io.swagger</groupId>
<artifactId>swagger-codegen-maven-plugin</artifactId>
<version>${version.swagger.codegen}</version>
<configuration>
<inputSpec>${yaml.file}</inputSpec>
<configOptions>
<sourceFolder>${generated-sources-java-path}</sourceFolder>
</configOptions>
<output>${generated-sources-path}</output>
</configuration>
<executions>
<execution>
<id>generate-swagger-spring</id>
<phase>generate-sources</phase>
<goals>
<goal>generate</goal>
</goals>
<configuration>
<language>spring</language>
<modelPackage>${project.groupId}.swagger.model</modelPackage>
<apiPackage>${project.groupId}.swagger.api</apiPackage>
<invokerPackage>${project.groupId}.swagger.invoker</invokerPackage>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<executions>
<execution>
<id>add-generated-source</id>
<phase>initialize</phase>
<goals>
<goal>add-source</goal>
</goals>
<configuration>
<sources>
<source>${generated-sources-path}/${generated-sources-java-path}</source>
</sources>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.eclipse.m2e</groupId>
<artifactId>lifecycle-mapping</artifactId>
<version>1.0.0</version>
<configuration>
<lifecycleMappingMetadata>
<pluginExecutions>
<pluginExecution>
<pluginExecutionFilter>
<groupId>io.swagger</groupId>
<artifactId>swagger-codegen-maven-plugin</artifactId>
<versionRange>[${version.swagger.codegen},)</versionRange>
<goals>
<goal>generate</goal>
</goals>
</pluginExecutionFilter>
<action>
<execute />
</action>
</pluginExecution>
</pluginExecutions>
</lifecycleMappingMetadata>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
<!-- Swagger -->
<plugin>
<groupId>io.swagger</groupId>
<artifactId>swagger-codegen-maven-plugin</artifactId>
<version>2.3.1</version>
<executions>
<execution>
<id>contract-service</id>
<goals>
<goal>generate</goal>
</goals>
<configuration>
<inputSpec>${basedir}/src/main/resources/swagger/rest-data-exchange-format.yaml</inputSpec>
<artifactId>contract-service</artifactId>
<output>${basedir}/target/generated-sources</output>
<language>spring</language>
<modelPackage>ru.payhub.rest.v1.model</modelPackage>
<apiPackage>ru.payhub.rest.v1.api</apiPackage>
<!-- <invokerPackage>ru.payhub.rest.v1.handler</invokerPackage> -->
<generateSupportingFiles>false</generateSupportingFiles>
<configOptions>
<sourceFolder>src/main/java</sourceFolder>
<interfaceOnly>true</interfaceOnly>
<library>spring-boot</library>
<dateLibrary>${generator.datelibrary}</dateLibrary>
<configPackage>ru.payhub.config</configPackage>
<singleContentTypes>true</singleContentTypes>
</configOptions>
</configuration>
</execution>
</executions>
</plugin>
官方参数说明在这里
Swagger 语法规范在这里
在这个示例 maven 插件中,使用 swagger 数据模型文件 (yaml) 生成模型类以在控制器中使用它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.