为什么 openapi-generator 生成的文件会被忽略?

问题描述

对于我的项目,我想根据 openapi 规范生成我的 restapi。生成的类使用 javax 库中的 @Path 和 @Get 进行注释。

不幸的是,CDI 没有“接收”生成的类。当我查看 CDI bean 时,它只是不存在。

这是此问题的“有效”示例。克隆 repo,mvn clean verify 和指定的测试将失败(404 而不是 200):https://github.com/rmvanderspek/generate-api

解决方法

事实证明,问题出在 openapi-plugin 配置上。默认情况下,jaxrs-resteasy opeapi-generator 将生成的文件放在 targe/generated-classes/openapi/**src/gen/java** 中。实现类是唯一的例外,它确实放在 src/main/java 中。

要解决这个问题,需要添加另一个插件来将此文件夹添加到应用程序源中:

  <plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>build-helper-maven-plugin</artifactId>
    <version>3.2.0</version>
    <executions>
      <execution>
        <phase>generate-sources</phase>
        <goals>
          <goal>add-source</goal>
        </goals>
        <configuration>
          <sources>src/gen/java</sources>
        </configuration>
      </execution>
    </executions>
  </plugin>