问题
搞前端项目ReactJS
的Jenkins Pipeline
,发现npm
命令无法执行。报错大致如下:
[ERROR] Failed to execute goal org.codehaus.mojo:exec-maven-plugin:1.2.1:exec (n
pminstall) on project my-abc-web: Command execution failed. Cannot
run program "npm" (in directory "XXX"): CreatePro
cess error=2, The system cannot find the file specified -> [Help 1]
其中是通过org.codehaus.mojo:exec-maven-plugin
来执行npm
的。
解决方案
配置pom
时要路径:
<executable>${NPM_PATH}npm</executable>
通过maven
的命令传参:mvn clean install -DNPM_PATH
。
如果无法这样直接传参(有些jenkins job
无法直接传参),其中一个可行的方案是:在Jenkinsfile
通过Groovy
传环境变量${env.NPM_PATH}
,然后在jenkins slave
机器配置环境变理即可。