如何使用 maven 和 openapi 解决不正确的依赖关系
How to solve incorrect dependencys using maven and openapi
在我们的 springboot 项目中,我们使用 openapi 来生成数据的表示。但是,如果我尝试构建项目,它看起来生成的 classes/Interfaces 缺少所有依赖项。我收到很多错误,比如 java: package io.swagger.annotations does not exist
或 java: 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
在我们的 springboot 项目中,我们使用 openapi 来生成数据的表示。但是,如果我尝试构建项目,它看起来生成的 classes/Interfaces 缺少所有依赖项。我收到很多错误,比如 java: package io.swagger.annotations does not exist
或 java: 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