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

Java Maven项目本地构建失败:com.sun.tools.javac.code.TypeTags缺失

排查步骤
  • 核对JDK版本一致性
    生产Tekton环境与本地Ubuntu的JDK版本必须匹配:com.sun.tools.javac.code.TypeTags是JDK 8及以下的内部类,JDK 9+已被移除并替换为TypeKind。

    • 执行java -version和javac -version确认本地JDK版本,同时查询生产环境Tekton构建镜像的JDK版本。
    • 若本地JDK版本高于生产环境,在Ubuntu上通过update-alternatives切换至与生产一致的JDK版本(如JDK 8)。
  • 检查maven-compiler-plugin配置
    当前使用的maven-compiler-plugin:3.7.0对JDK 9+兼容性有限,且需确保编译参数与JDK版本匹配:

    • 打开项目根pom.xml,确认source和target参数与目标JDK版本一致(如JDK 8对应1.8)。
    • 建议升级插件至3.8.1及以上版本,示例配置:
      <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-compiler-plugin</artifactId>
          <version>3.8.1</version>
          <configuration>
              <source>1.8</source>
              <target>1.8</target>
          </configuration>
      </plugin>
      
  • 排查依赖库兼容性
    旧版本依赖库(如Lombok 1.16.x及更早版本)会依赖TypeTags类,导致JDK 9+编译失败:

    • 执行mvn dependency:tree生成依赖树,查找可能使用该内部类的库。
    • 若项目使用Lombok,升级至1.18.0及以上版本,该版本已适配JDK 9+的API变更。
  • 确认IntelliJ IDE的JDK配置
    避免IDE与终端使用的JDK版本不一致:

    • 打开File → Project Structure → Project,确认Project SDK和Language Level与系统JDK匹配。
    • 检查Modules下每个模块的SDK配置,确保统一使用目标JDK版本。
  • 定位多模块构建的具体问题
    单个模块可构建但多模块失败,需缩小问题范围:

    • 执行mvn -pl selenium clean install单独构建失败的模块,确认是否为模块自身问题。
    • 执行mvn clean彻底清理所有构建产物后,重新尝试多模块构建。
  • 检查Ubuntu环境的JAVA_HOME配置
    确保终端环境变量正确指向目标JDK:

    • 执行echo $JAVA_HOME验证路径是否正确,需与java -version输出的版本对应。
    • 检查MAVEN_OPTS环境变量是否存在冲突的JDK参数,必要时清空后重试构建。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 03:31:50