問題背景:
root 用戶安裝了maven,切換到jenkins 用戶可以正常執行mvn 命令,但是jenkins job 構建任務卻無法執行mvn命令,報錯如下:/bin/sh: 1: mvn: not found
1、root用戶安裝maven
root# mvn -v Apache Maven 3.5.2 (138edd61fd100ec658bfa2d307c43b76940a5d7d; 2017-10-18T07:58:13Z) Maven home: /usr/share/maven Java version: 1.8.0_151, vendor: Oracle Corporation Java home: /usr/java/jdk1.8.0_151/jre Default locale: en_US, platform encoding: UTF-8 OS name: "linux", version: "3.13.0-135-generic", arch: "amd64", family: "unix"
2、root用戶配置/etc/profile 文件,並source 使配置生效
export M2_HOME=/usr/share/maven
export PATH=$PATH:${M2_HOME}/bin
3、切換到ubuntu用戶執行mvn命令,報錯
ubuntu@$ whereis mvn mvn: /usr/bin/mvn /usr/bin/X11/mvn /usr/share/man/man1/mvn.1.gz ubuntu@$ /usr/bin/mvn -v -bash: /usr/bin/mvn: Too many levels of symbolic links
4、root用戶下查看/usr/bin/mvn 軟連接信息
root@# whereis mvn mvn: /usr/bin/mvn /usr/bin/X11/mvn /usr/share/man/man1/mvn.1.gz
root@# ll /usr/bin/mvn lrwxrwxrwx 1 root root 3 Dec 8 13:44 /usr/bin/mvn -> mvn
5、更改軟連接方式
root@# rm -f /usr/bin/mvn root@# ln -s /usr/share/maven/bin/mvn /usr/bin/mvn root@# ll /usr/bin/mvn lrwxrwxrwx 1 root root 24 Dec 8 13:47 /usr/bin/mvn -> /usr/share/maven/bin/mvn*
6、ubuntu用戶下再次驗證
ubuntu@$ mvn -v Apache Maven 3.5.2 (138edd61fd100ec658bfa2d307c43b76940a5d7d; 2017-10-18T07:58:13Z) Maven home: /usr/share/maven Java version: 1.8.0_151, vendor: Oracle Corporation Java home: /usr/java/jdk1.8.0_151/jre Default locale: en_US, platform encoding: UTF-8 OS name: "linux", version: "3.13.0-135-generic", arch: "amd64", family: "unix"
總結:
建立軟連接的時候,盡量采用絕對路徑,避免采用相對路徑建立軟鏈接。