是否可以使用 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>>> 属性?

F#周报2019年第19期

在 Vue.js 2.x 中为选定的 NPM 包禁用 eslint

是否可以使用ghostscript检查pdf是否受密码保护?

是否可以使用 setup api 来判断设备是否已启用