du-*_*-it 5 pom.xml spring-boot openapi springdoc-openapi-maven-plugin
有没有办法以编程方式将构建版本从 Spring Boot 应用程序的 POM 设置为 springdoc-openapi-maven-plugin 生成的 OpenApi YAML?
我怎样才能实现它?
目前我已经通过这种方式集成了 springdoc-openapi-maven-plugin :
<plugin>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-maven-plugin</artifactId>
<version>1.1</version>
<executions>
<execution>
<id>integration-test</id>
<goals>
<goal>generate</goal>
</goals>
</execution>
</executions>
<configuration>
<apiDocsUrl>http://localhost:9090/v3/api-docs.yaml</apiDocsUrl>
<outputFileName>my_open_api_specification.yml</outputFileName>
<outputDir>${project.build.directory}/my_open_api_specification/</outputDir>
<skip>false</skip>
</configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)
我有一个使用 OpenApi 注释来注释方法的接口:
@Tag(name = "API Operationen")
@RequestMapping
public interface RestApi {
...
@Bean
default OpenAPI myOpenApi() {
return new OpenAPI()
.info(new Info()
.title("The title")
.version("1.0") <-- I want to dynamically set this version with the value coming from BuildProperties (POM version).
.description("The description"));
}
}
Run Code Online (Sandbox Code Playgroud)
我使用 spring-boot-maven-plugin 找到了一些信息,但没有成功:
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<!-- <version>2.5.4</version> -->
<executions>
<execution>
<goals>
<goal>build-info</goal>
</goals>
</execution>
</executions>
</plugin>
Run Code Online (Sandbox Code Playgroud)
与此同时,我将 bean 定义从接口移动到 @Configuration 文件/类中,但是当我启动应用程序时,我在 bean 创建期间收到 NullPointerException myOpenApi:
@Configuration
@ConfigurationPropertiesScan("xxx")
@RequiredArgsConstructor
public class OpenApiConfig {
@Autowired // <-- was missing
BuildProperties buildProperties;
@Bean
OpenAPI myOpenApi() {
return new OpenAPI()
.info(new Info()
.title("FooBar")
.version(buildProperties.getVersion())
.description("blablabla"));
}
}
Run Code Online (Sandbox Code Playgroud)
据我了解,BuildProperties 是由 Maven 插件创建的,并且在myOpenApi创建时可用,但似乎情况并非如此。(至少在我的配置中是这样。)
| 归档时间: |
|
| 查看次数: |
1245 次 |
| 最近记录: |