问题描述
对于我的项目,我想根据 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>