Swagger 3 и Java > = 9 Jigsaw

#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