Jenkins 持续集成环境采坑记录

1. 使用 pipeline 构建项目,执行 mvn 提示命令找不到

错误详情

mvn: command not found

初步分析

出现 command not found 一般有两种情况:确实不存在,即没有安装这个软件 或者 安装了但是没有正确配置环境变量。而我清晰的记得我有安装 maven 并进行了环境变量的配置,既然出现了这个错误可能是我们环境变量没有配置正确?

相关截图

pipeline 脚本截图

Jenkins 持续集成环境采坑记录

控制台输出截图

Jenkins 持续集成环境采坑记录

排查

检查机器环境变量配置

进入机器执行 mvn 命令发现正常可以执行,说明本地环境变量配置应该没问题Jenkins 持续集成环境采坑记录

查看 Jenkins 全局工具配置

机器上已经正确配置 maven 的环境变量,Jenkins 还提示命令没找到,基本上可以确定问题是出在 Jenkins 配置上了,所以检查下 Jenkins 里面配置 maven 的环境变量是否和系统设置的一致。最终确认 Jenkins 全局工具配置里面的环境变量和系统设置的环境变量指向是一致的。

Jenkins 持续集成环境采坑记录Jenkins 持续集成环境采坑记录

新建一个 maven 类型项目进行构建

既然全局工具配置里面的环境变量配置没问题,那有没有可能是 pipeline 脚本有问题导致的?所以新建一个 maven 类型项目进行构建,如果正常则说明应该是 pipeline 脚本有问题。最终运行的结果就是 maven 类型的项目是能够正常进行构建的。从控制台输出可以看到执行构建时读取到了机器上 maven 所在路径下的相关 jar 包。现在问题就很清晰了,应该是 pipeline 脚本在执行 shell 命令是没有读取到设置的环境变量。

Jenkins 持续集成环境采坑记录

Jenkins 持续集成环境采坑记录

打印环境变量

打印出环境变量后可以清晰的看到没有 maven 的配置,仔细回想了一下 maven 的环境变量好像是在启动 Jenkins 之后才添加上去的,那杀掉进程重启一下 Jenkins 应该能够解决。

Jenkins 持续集成环境采坑记录

Jenkins 持续集成环境采坑记录

杀掉进程重启 Jenkins

完美解决
Jenkins 持续集成环境采坑记录