lpa*_*eco 7 java eclipse maven swagger swagger-codegen
我正在使用Swagger 2.0和swagger-codegen(实际上是Maven的swagger-codegen-plugin)来指定,记录和生成API,以Java作为目标语言.
该项目已经设置为构建服务器存根(JAX-RS)和文档,Eclipse识别项目buildPath中生成的代码.
我不确定这里适当的工作流程是什么.: - /
我不认为我应该修改生成的类,否则每当我更改swagger规范时我的更改都会被覆盖,我希望它随着开发的进行而更多地考虑API而改变.
那我该怎么办?继承自生成的类(哪些?)或将它们包含在我自己的类中?
小智 4
这里的解决方案有两个步骤。
将 **/*Controller.java 或 **/*Impl.java 添加到 .swagger-codegen-ignore 文件。根据所使用的语言,默认实现在 *Controller.java 或 *Impl.java 文件中提供。一旦从生成中排除默认实现,您就可以在自己的类中实现生成的接口。您自己的类中的代码不会在 mvn clean 上刷新。
.swagger-codegen-ignore 文件本身是一个自动生成的文件,因此当您执行 mvn clean 时,您在步骤 1 中添加的任何内容都会刷新。为了避免这种情况,请将您的版本保留.swagger-codegen-ignore在资源文件夹中,并将以下插件添加到您的 pom 中,以在 Maven 生命周期开始时复制该文件:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<executions>
<execution>
<id>copy-resources</id>
<phase>initialize</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/generated/swagger</outputDirectory>
<resources>
<resource>
<directory>${basedir}/src/main/resources</directory>
<includes>
<include>.swagger-codegen-ignore</include>
</includes>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3964 次 |
| 最近记录: |