以前都是在unix/linux系统上创建slave,,今天要在windows上也创建一个,所以记录一些自己遇到的问题。
关于windows上创建slave的基本方法可以百度出很多blog,比如:
在创建的过程中遇到了以下问题:
0. 我使用的windows系统是刚装好的,很多东西都没有。
由于习惯了linux系统,所以先安装cygwin。
1. windows上需要安装javaws。
由于windows上的slave一般推荐用java web start的方式来启动,所以需要javaws。
最新的java都捆绑了javaws,所以只要安装java就OK了。
2. 需要将自己的ssh的public key追加到git repo中的.ssh/authorized_keys2文件中。
3. 在本地用git clone能成功,但用jenkins就报错:
Cannot run program "git" (in directory "E:\xxxxx"): CreateProces error=2, The system cannot find the file specified.
这个错误是说在当前目录下找不到git命令,所以这是一个环境变量的问题。
本地git clone能成功是因为cygwin设置好了环境变量,但windows下并没有设置好。
所以要设置windows环境变量, 在path中加上git所在的目录: C:\cygwin\bin
4. 在jenkins中执行一个bat时,报错: \Java\jre1.8.0_31\bin"" was unexpected at this time.
这个错误是由于环境变量中路径包含了特殊字符(C:\Program Files (x86)\Java\jre1.8.0_31\bin ),导致解析是出错。
值得说明的是,我们手工在CMD中执行该bat不会报错,通过jenkins执行就会报错。
这个问题网上也有一些讨论:
https://issues.jenkins-ci.org/browse/JENKINS-11992
原因在于java path这个环境变量中包含了特殊字符:
通过Manage Jenkins –> Manage Nodes –> My Slave –> Systeminfo page可以查看。
网上提出了一些work around来解决这个问题,我采用的办法是重装java到C:\Java\jre1.8.0_31,这样就避免了特殊字符的问题。
解决了上述问题后,就可以在jenknis上启动windows上的slave来进行build了。
孤独是一种无奈的选择,孤独是因为没有找到合适的同行者,