如何使用 maven 和 openapi 解决不正确的依赖关系

How to solve incorrect dependencys using maven and openapi

在我们的 springboot 项目中,我们使用 openapi 来生成数据的表示。但是,如果我尝试构建项目,它看起来生成的 classes/Interfaces 缺少所有依赖项。我收到很多错误,比如 java: package io.swagger.annotations does not existjava: package springfox.documentation.annotations does not exist.

但是依赖项应该存在。该项目有 2 个 pom.xml 个文件。一个在项目的主目录下,一个在生成数据的src目录下。 src目录下的pom包含

 <build>
        <sourceDirectory>src/main/java</sourceDirectory>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.data</groupId>
            <artifactId>spring-data-commons</artifactId>
        </dependency>
        <!--SpringFox dependencies -->
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>${springfox-version}</version>
        </dependency>
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
            <version>${springfox-version}</version>
        </dependency>
        <dependency>
            <groupId>javax.xml.bind</groupId>
            <artifactId>jaxb-api</artifactId>
            <version>2.3.1</version>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.datatype</groupId>
            <artifactId>jackson-datatype-jsr310</artifactId>
        </dependency>
        <dependency>
            <groupId>org.openapitools</groupId>
            <artifactId>jackson-databind-nullable</artifactId>
            <version>0.2.1</version>
        </dependency>
    <!-- Bean Validation API support -->
        <dependency>
            <groupId>javax.validation</groupId>
            <artifactId>validation-api</artifactId>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
        </dependency>
    </dependencies>

这里列出了所有需要的依赖项,如 swagger。这就是为什么我不明白怎么会有所有这些错误说找不到包。我不知道为什么会这样,所以如果有人能帮助我,我将不胜感激。

尝试在两个依赖项上切换到版本 2.92

        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>2.9.2</version>
        </dependency>
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
            <version>2.9.2</version>
        </dependency>

如果您使用 SpringToolSuite4,随着版本的改变,强制更新 Maven 项目应该可以工作: 项目 > 更新 Maven 项目 > 强制更新 Snapshots/Releases