场景
我在Centos主机上安装好Maven,并且配合好了环境变量。
通过mvn -version
,也能看到版本
然而使用Jenkins的publish over ssh 插件在访问这个主机执行到mvn clean install
的时候,遇到了问题
mvn这个命令与其他的命令最大的不同就是,mvn配置于/etc/profile
的环境变量中。找了很多资料得知,jenkins执行shell时,并不会加载这个环境变量中的内容。
可以试试在jenkins的shell中执行,echo $path
,看看打印出来的结果
打印出来的是这么一串东西…
而我们在Centos上打印的是自己配置的环境变量:
可见环境变量确实不对,至少PATH都不一样。
解决办法
主要看到了三种办法,但是我比较背,操作的方式可能不对,有两种方式未实现,直达遇到了第三种..
#!/bin/sh -l
,在Shell脚本前面加上 #!/bin/sh -l,意为以登录方式执行脚本。- 创建软连接的方式
- 在Shell脚本前面加上
source /etc/profile
,这句话本身就是让环境变量配置生效。我们修改了环境变量之后也会执行这句话。
第三种一步到位实现了。能够执行mvn命令了。