同一Jenkins Pipeline脚本跨项目异常:tools.jar缺失求助
Maven编译报错:tools.jar not found
错误日志
[INFO] Changes detected - recompiling the module! :dependency [INFO] Compiling 7 source files with javac [debug target 1.8] to target/classes [INFO] ------------------------------------------------------------------------ [INFO] BUILD FAILURE [INFO] ------------------------------------------------------------------------ [INFO] Total time: 36.513 s [INFO] Finished at: 2023-11-16T05:23:59Z [INFO] ------------------------------------------------------------------------ [ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.11.0:compile (default-compile) on project project-name: Fatal error compiling: tools.jar not found: /usr/lib/jvm/java-8-amazon-corretto/../lib/tools.jar -> [Help 1]
已确认的环境信息
Jenkins Pipeline中检查Java版本正常:
[Pipeline] sh + java -version openjdk version "1.8.0_392" OpenJDK Runtime Environment Corretto-8.392.08.1 (build 1.8.0_392-b08) OpenJDK 64-Bit Server VM Corretto-8.392.08.1 (build 25.392-b08, mixed mode) [Pipeline] sh + javac -version javac 1.8.0_392
同一Pipeline脚本在其他项目可正常运行,当前项目出现此问题,可能的原因:
- 项目Maven配置硬编码了JDK路径:检查当前项目的
pom.xml,看maven-compiler-plugin是否强制指定了tools.jar路径或非Corretto的JDK home,导致路径解析错误。 - Corretto 8的目录结构特殊性:Amazon Corretto 8的
tools.jar位置和常规Oracle JDK有差异,常规JDK 8的tools.jar在JDK_HOME/lib/下,但Corretto的实际路径可能不在报错提示的/usr/lib/jvm/java-8-amazon-corretto/../lib/,项目配置未适配这个差异。 - Jenkins项目专属环境变量异常:全局Java版本正常,但当前项目可能单独配置了错误的
JAVA_HOME(指向JRE而非JDK),JRE中不存在tools.jar,导致Maven找不到文件。 - 项目插件版本或依赖冲突:当前项目的maven-compiler-plugin版本(3.11.0)可能和其他项目不一致,或者项目内其他插件修改了编译环境参数,引发路径解析问题。
- Jenkins工作空间缓存残留:当前项目的Jenkins工作空间存在旧编译缓存或配置文件,清理工作空间后重新构建可排查此问题。
内容的提问来源于stack exchange,提问作者Sachin Sheelavant
相关产品推荐
相关产品推荐

