问题描述
我尝试在openApi 1.4.3中使用来自swagger-ui 2.5.0的旧代码,
<!-- SWAGGER -->
<dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-ui</artifactId>
<version>1.4.3</version>
</dependency>
<!-- <dependency> -->
<!-- <groupId>io.springfox</groupId> -->
<!-- <artifactId>springfox-swagger2</artifactId> -->
<!-- <version>2.5.0</version> -->
<!-- <exclusions> -->
<!-- <exclusion> -->
<!-- <artifactId>jackson-annotations</artifactId> -->
<!-- <groupId>com.fasterxml.jackson.core</groupId> -->
<!-- </exclusion> -->
<!-- </exclusions> -->
<!-- </dependency> -->
<!-- <dependency> -->
<!-- <groupId>io.springfox</groupId> -->
<!-- <artifactId>springfox-swagger-ui</artifactId> -->
<!-- <version>2.5.0</version> -->
<!-- </dependency> -->
当前,当我运行Web服务时,它失败了,没有错误,并且经过多次调试,我注意到openApi不接受语法@ project.version @!
我使用这种语法从pom.xml中通过Spring Boot获得项目版本。 这种语法仅适用于2.5.0,而不适用于2.9.2。
我正在使用yml文件。
swagger:
enabled: true
title: REST APIs for breakdown calculator
description: REST APIs for breakdown calculator
version: @project.version@
terms-url:
license:
license-url:
name: WORLD-LIST-REG
email: lis@soc.mn
url:
你有个主意吗?
谢谢。
解决方法
@ project.version @语法只是来自Maven配置的过滤器。
这是示例代码:
@SpringBootApplication
public class SpringdocApplication {
public static void main(String[] args) {
SpringApplication.run(SpringdocApplication.class,args);
}
@Bean
public OpenAPI customOpenAPI(@Value("${springdoc.version}") String appVersion) {
return new OpenAPI()
.components(new Components())
.info(new Info().title("Books API").version(appVersion)
.license(new License().name("Apache 2.0").url("http://springdoc.org")));
}
}
在您的配置 application.properties 文件上:
project.version= @project.version@
另外请注意,您需要按照以下步骤进行迁移: