swagger-codegen-maven-plugin切换为java语言时缺失依赖报错如何解决?
问题原因
- 使用
<language>spring</language>时,Spring生态本身已内置Jackson序列化、JSR310时间处理等相关依赖,不会触发包缺失报错 - 切换为
<language>java</language>后,Swagger代码生成器默认采用Gson作为JSON序列化组件,项目未显式引入该依赖时会抛出com.google.gson包不存在的错误 - 新增
<library>restemplate</library>配置后,默认生成的代码会引入threetenbp(Java 8之前的时间API向下兼容库)作为时间处理依赖,未引入对应组件时会抛出org.threeten.bp相关包不存在的错误
解决方案
步骤1:调整插件配置(推荐)
将Java 8相关配置下沉到执行单元的configOptions中,同时新增dateLibrary参数指定使用Java 8原生时间API,避免引入过时的threetenbp依赖,调整后的插件配置参考如下:
<plugin> <groupId>io.swagger.codegen.v3</groupId> <artifactId>swagger-codegen-maven-plugin</artifactId> <version>3.0.26</version> <executions> <execution> <goals> <goal>generate</goal> </goals> <configuration> <inputSpec>./src/main/resources/api-contract/first.json</inputSpec> <language>java</language> <library>restemplate</library> <output>${project.build.directory}/</output> <configOptions> <sourceFolder>./generated-sources/</sourceFolder> <java8>true</java8> <interfaceOnly>true</interfaceOnly> <apiPackage>com.service.api</apiPackage> <modelPackage>com.service.model</modelPackage> <invokerPackage>com.service.handler</invokerPackage> <!-- 新增该配置,使用Java8原生时间API --> <dateLibrary>java8</dateLibrary> </configOptions> </configuration> </execution> </executions> </plugin>
步骤2:添加缺失的项目依赖
在项目pom.xml的dependencies节点中添加以下依赖:
<!-- Gson依赖,Swagger Java生成器默认序列化组件 --> <dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> <version>2.10.1</version> </dependency> <!-- 使用restemplate作为HTTP客户端时需要引入spring-web依赖 --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>5.3.27</version> </dependency>
如果不调整插件配置、仍希望使用threetenbp作为时间处理组件,可额外添加以下依赖:
<dependency> <groupId>org.threeten</groupId> <artifactId>threetenbp</artifactId> <version>1.6.8</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.datatype</groupId> <artifactId>jackson-datatype-threetenbp</artifactId> <version>2.15.2</version> </dependency>
步骤3:重新构建
执行mvn clean install即可完成正常编译打包。
内容的提问来源于stack exchange,提问作者timo
相关产品推荐
相关产品推荐

