原本 Jenkins 跑的好好的。我把跑Jenkins的 tomcat 装成 windows service后,Jenkins就找不到 ANT了。 错误如下:
cmd.exe /C '"ant.bat -file build.xml deploy && exit %%ERRORLEVEL%%"'
'ant.bat' 不是内部或外部命令,也不是可运行的程序
解决办法 1:
那肯定是Jenkins读不到环境变量了。搜了一下,可以在 Jenkins 内配置,明确的高速他 ANT在哪儿,甚至 JDK 在哪儿。参考这个: http://wiki.mxunit.org/display/default/Continuous+Integration+--+Running+tests+with+Jenkins
缺点在文中也提到了,每一个 job 都要特意指定用你定义的ANT。
解决办法 2:
后来醒悟过来,这是因为环境变量都是配置在当前用户下,而Windows Service不认识当前用户,当然就不认得已经定义好的ANT_HOME, JAVA_HOME 了。我在 tomcat 的 Windows Service里配置好登录的用户,这下就不再需要特别在 Jenkins 中重新定义环境变量了。
(BTW: 如果所有的环境变量,在一开始就不要创建成 用户环境变量,而是用 系统环境变量,也许也能解决该问题。以后我就都用系统变量了。)
cmd.exe /C '"ant.bat -file build.xml deploy && exit %%ERRORLEVEL%%"'
'ant.bat' 不是内部或外部命令,也不是可运行的程序
解决办法 1:
那肯定是Jenkins读不到环境变量了。搜了一下,可以在 Jenkins 内配置,明确的高速他 ANT在哪儿,甚至 JDK 在哪儿。参考这个: http://wiki.mxunit.org/display/default/Continuous+Integration+--+Running+tests+with+Jenkins
缺点在文中也提到了,每一个 job 都要特意指定用你定义的ANT。
解决办法 2:
后来醒悟过来,这是因为环境变量都是配置在当前用户下,而Windows Service不认识当前用户,当然就不认得已经定义好的ANT_HOME, JAVA_HOME 了。我在 tomcat 的 Windows Service里配置好登录的用户,这下就不再需要特别在 Jenkins 中重新定义环境变量了。
(BTW: 如果所有的环境变量,在一开始就不要创建成 用户环境变量,而是用 系统环境变量,也许也能解决该问题。以后我就都用系统变量了。)