You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Swagger Java Client编译失败:找不到javax.annotationmvn包

解决Swagger-Codegen生成客户端编译报错:package javax.annotationmvn does not exist

问题场景

尝试构建由swagger-codegen-cli生成的Java客户端包,作为Java 17版本Spring Boot项目的依赖。执行mvn clean install时触发编译错误:

[INFO] -------------------------------------------------------------
[ERROR] COMPILATION ERROR :
[INFO] -------------------------------------------------------------
[ERROR] <path-to-project>/Projects/dev/Sellers_JavaCL/src/main/java/io/swagger/client/model/BatchRequest.java:[33,21] package javax.annotationmvn does not exist
[INFO] 1 error
[INFO] -------------------------------------------------------------
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  3.041 s
[INFO] Finished at: 2024-02-18T18:07:32-08:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project swagger-java-client: Compilation failure
[ERROR] <path-to-project>/Projects/dev/Sellers_JavaCL/src/main/java/io/swagger/client/model/BatchRequest.java:[33,21] package javax.annotationmvn does not exist

查看报错文件BatchRequest.java,发现注解包名拼写错误,annotationmvn为无效包名:

@ApiModel(description = "Common properties of batch requests against individual APIs.")
@javax.annotationmvn.Generated(value = "io.swagger.codegen.languages.JavaClientCodegen", date = "2024-02-17T14:18:13.581-08:00")

已尝试的无效操作:

  • 删除.m2仓库后重新执行mvn clean install
  • 切换JDK版本为17、11、1.8、1.7
  • 执行mvn dependency:tree分析依赖

解决方案

1. 修正注解包名拼写错误

将代码中所有javax.annotationmvn.Generated替换为javax.annotation.Generated,正确的@Generated注解位于javax.annotation包下,此问题应为swagger-codegen生成代码时的拼写bug。

2. 添加依赖并适配Java编译版本

由于Java 9及以上版本已移除javax.annotation默认依赖,同时需确保Maven编译配置匹配目标Java版本:

  • 在项目pom.xml中添加javax.annotation-api依赖:
<dependency>
    <groupId>javax.annotation</groupId>
    <artifactId>javax.annotation-api</artifactId>
    <version>1.3.2</version>
</dependency>
  • 更新maven-compiler-plugin配置,适配Java 17:
<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.11.0</version> <!-- 使用适配高版本Java的插件版本 -->
            <configuration>
                <source>17</source>
                <target>17</target>
                <encoding>UTF-8</encoding>
            </configuration>
        </plugin>
    </plugins>
</build>

3. 重新生成客户端(可选)

若频繁出现此类生成bug,建议升级swagger-codegen-cli至最新稳定版(如3.x系列),重新生成客户端代码,从源头避免拼写错误。

内容的提问来源于stack exchange,提问作者Danny Lu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 23:25:14