#spring-boot #swagger #java-11 #java-9 #springfox
#весенняя загрузка #swagger #java-11 #java-9 #springfox
Вопрос:
У меня возникли проблемы с настройкой Swagger 3 в моем приложении Java11 на основе maven.
Сначала я объявил в pom.xml
:
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>3.0.0</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>3.0.0</version>
</dependency>
Затем я настраиваю Swagger с использованием Spring Beans:
@Configuration
@EnableSwagger2
public class SwaggerConfig {
@Bean
public Docket swaggerSpringMvcPlugin() {
return new Docket(DocumentationType.SWAGGER_2)
.select()
.apis(RequestHandlerSelectors.basePackage("com.***.***.controller.rest"))
.paths(PathSelectors.any())
.build()
.apiInfo(metaData());
}
private ApiInfo metaData() {
return new ApiInfoBuilder().title("***")
.description("***")
.contact(new Contact("**", "www.***.com", "**"))
.license("Apache 2.0")
.licenseUrl("http://www.apache.org/licenses/LICENSE-2.0.html")
.version("1.0.0")
.build();
}
}
И, наконец, я объявил module-info.java
требования:
requires springfox.swagger2;
requires springfox.spring.web;
requires springfox.core;
Когда я пытаюсь mvn clean install
, я получаю следующую ошибку:
[INFO] -------------------------------------------------------------
[ERROR] COMPILATION ERROR :
[INFO] -------------------------------------------------------------
[ERROR] error: the *** module reads package springfox.documentation.service from both springfox.core and springfox.spi
[ERROR] error: module springfox.spring.web reads package springfox.documentation.service from both springfox.spi and springfox.core
[ERROR] error: module springfox.swagger2 reads package springfox.documentation.service from both springfox.spi and springfox.core
[ERROR] error: module java.annotation reads package springfox.documentation.service from both springfox.spi and springfox.core
[ERROR] error: module spring.core reads package springfox.documentation.service from both springfox.spi and springfox.core
[ERROR] error: module java.validation reads package springfox.documentation.service from both springfox.spi and springfox.core
[ERROR] error: module spring.beans reads package springfox.documentation.service from both springfox.spi and springfox.core
[ERROR] error: module spring.web reads package springfox.documentation.service from both springfox.spi and springfox.core
[ERROR] error: module spring.context reads package springfox.documentation.service from both springfox.spi and springfox.core
[ERROR] error: module swagger.annotations reads package springfox.documentation.service from both springfox.spi and springfox.core
[ERROR] error: module spring.boot reads package springfox.documentation.service from both springfox.spi and springfox.core
[ERROR] error: module springfox.core reads package springfox.documentation.service from both springfox.spi and springfox.core
[ERROR] error: module springfox.spi reads package springfox.documentation.service from both springfox.core and springfox.spi
[ERROR] error: module spring.boot.autoconfigure reads package springfox.documentation.service from both springfox.spi and springfox.core
[ERROR] /private/tmp/***/src/main/java/module-info.java:[1] error: module *** reads package springfox.documentation.service from both springfox.core and springfox.spi
[INFO] 15 errors
[INFO] -------------------------------------------------------------
Я думаю, допустил ошибку, но я не могу ее найти. Кто-нибудь может мне помочь?
Комментарии:
1. ищите вопросы здесь, поскольку модуль A считывает пакет B как из X, так и из Y
Ответ №1:
На данный момент нет официального решения для решения этой проблемы. однако использование maven-shade-plugin и объединение двух файлов springfox.core и springfox.spi в одном пакете — лучший обходной путь для запуска вашего проекта.
Добавьте эту зависимость, упомянутую в этом URL: https://jitpack.io/#valery1707/springfox-assembly
requires springfox.assembly;
вместо
requires springfox.core;
requires springfox.spi