Sar*_*nni 5 shell maven-3 maven jenkins
我已经在Manage Jenkins->配置系统->环境变量下设置了M2_HOME,并且还在Manage Jenkins->全局工具配置下设置了M2_HOME。
当我使用Maven项目时,它工作正常。
但是,当我使用自由样式项目并执行shell时,它将引发错误“找不到mvn”。
但是当我echo $M2_HOME
输入Execute shell时,它显示了正确的路径。
另外,当我尝试时$M2_HOME/mvn compile
,它工作正常。
我不知道确切的问题。
错误 [编译]
$ /bin/sh -xe /tmp/jenkins1984982949384007169.sh
+ mvn --version
/tmp/jenkins1984982949384007169.sh: 2: /tmp/jenkins1984982949384007169.sh: mvn: not found
Build step 'Execute shell' marked build as failure
Finished: FAILURE
Run Code Online (Sandbox Code Playgroud)
执行命令的 shellmvn
不知道变量中脚本的路径M2_HOME
。shell 只会查看$PATH
变量中列出的命令。
所以有两种解决方案:
始终用于"$M2_HOME/mvn"
执行 Maven(或者更确切地说,"$M2_HOME/bin/mvn"
因为M2_HOME
应该指向包含而不是脚本本身的文件夹bin
)lib
。
更改脚本顶部的路径以使 shell 在正确的位置搜索:
export PATH="$M2_HOME/bin:$PATH"
Run Code Online (Sandbox Code Playgroud)
这可能只有当您在脚本中多次运行 Maven 时才有意义。