最近在maven3里加入了执行npm install及webpack的运行,在centos6和centos7里会报出不同的错。
事后写的记录,因此这时就没有给出原出错信息。这里假设已经正确安装了jenkins、maven3、jdk、nodejs及npm、webpack。
一、centos6问题及解决办法
centos6大致报的是c++版本问题,在centos6上安装了devtoolset-3。安装完devtoolset-3后,必须先执行source /opt/rh/devtoolset-3/enable。问题得到解决。
二、centos7问题及解决办法
centos7会报不能执行webpack命令。解决的办法是给webpack写上绝对路径。
三、权限问题
有时候我们用root用户执行mvn都很正常,一结合jenkins就歇菜了,可以直接在终端环境下切换到jenkins用户来执行mvn,就会发现jenkins用户执行时,可能会提示某些权限的问题。设置好权限问题会得到解决。
四、环境变量问题
jenkins的环境变量并非与/etc/profile所设置的一致,或其他地方设置的变量有时候在jenkins里也不会起作用,jenkins里也有自己的环境变量设置,一般我们不太去设置这些,但是如果使用mvn -X 还是可以deubg到各种环境变量的情况。一开始报出无法执行webpack命令,一直主观的认为是maven插件自身的问题,因此浪费了很多时间一无所获后才把问题定位到可能是jenkins自身的环境变量问题,改成绝对路径后问题立马解决了,再进一步查看jenkins下的PATH跟终端下的PATH果然少了很多项。
五、无法运行本地的tomcat7 catalina.sh
在jenkins下运行command /itbegin/catalina.sh start
提示成功,再查看进程,并没有成功启动tomcat。直接用ssh进入系统,不管理root或是jenkins用户都可以正常启动tomcat。没有权限问题,看起来也不应该有环境变量的问题。但可能还有某些隐藏但有想着的环境变量并未一致,难以查找。变通的办法是jenkins安装ssh remote插件,然后执行远程插件命令的方式,运行成功。因为使用了ssh插件,即一次用户登录,完整的执行了.bashrc、profile等初始化环境。