是否可以使用 openapi-generator maven 插件在现有的 maven 项目中创建 Java 客户端?
Posted
技术标签:
【中文标题】是否可以使用 openapi-generator maven 插件在现有的 maven 项目中创建 Java 客户端?【英文标题】:Is it possible to use the openapi-generator maven plugin to create a Java client in an existing maven project? 【发布时间】:2022-01-11 14:50:53 【问题描述】:我能找到的所有示例(当尝试使用它时,我发现相同的输出)从给定规范生成 Java API 客户端的方法是创建一个完全独立的 Maven 模块/项目作为输出。我想在我现有的项目结构中生成源代码。这不可能吗?
【问题讨论】:
【参考方案1】:看this example,我觉得在你项目的pom.xml中粘贴代码应该没有问题。不过,我会在其他位置生成输出,例如在$project.build.directory/generated-sources/...something
:
<build>
<plugins>
...
<plugin>
<groupId>org.openapitools</groupId>
<artifactId>openapi-generator-maven-plugin</artifactId>
<!-- RELEASE_VERSION -->
<version>5.1.0</version>
<!-- /RELEASE_VERSION -->
<executions>
<execution>
<goals>
<goal>generate</goal>
</goals>
<configuration>
<inputSpec>$project.basedir/src/main/resources/api.yaml</inputSpec>
<generatorName>java</generatorName>
<configOptions>
<sourceFolder>$project.build.directory/generated-sources/openapi</sourceFolder>
</configOptions>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
然后您必须将生成的源附加为您的 maven 项目的输入。:
<build>
<plugins>
...
<!-- Attaching source directories (for Eclipse to create the source folders properly).
http://***.com/questions/7160006/m2e-and-having-maven-generated-source-folders-as-eclipse-source-folders
-->
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<executions>
<execution>
<id>add-source</id>
<phase>generate-sources</phase>
<goals>
<goal>add-source</goal>
</goals>
<configuration>
<sources>
<source>$project.build.directory/generated-sources/openapi</source>
</sources>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
【讨论】:
以上是关于是否可以使用 openapi-generator maven 插件在现有的 maven 项目中创建 Java 客户端?的主要内容,如果未能解决你的问题,请参考以下文章
openapi-generator asciidoc 限制参数列,省略类型
如何在 openapi-generator 中定义 List<Map<Integer, Set<String>>> 属性?
在 Vue.js 2.x 中为选定的 NPM 包禁用 eslint